#!/usr/bin/env bash
# v1.9.17 M1 F5(承 docs/V1916_RULINGS_36.md 裁1 ∧ docs/V1917_RULINGS_05.md 裁1「J 19→21」∧
#   docs/V1917_RULINGS_10.md 去向「P0-3 按 J21 可判形落 allow-list」):
#   吞错禁令 —— **语形分级**(`J` 类**判据执行行**逐条 `allow-list` ∧ `M` 类放行但**空值显名**)。
#
# ★★ 谓词之【可判形】(★ 我侧独立导出 · 非逐条硬抄 · 见 `P0_1_inventory.md` §3.2):
#   形1 `\) *> *[^|]*\|\| true`  —— 吞【子壳整体】之 `rc`(`( … ) > <档> … || true`)
#   形2 `.xuanwu/**` 内【末行验证】`… \|\| true`(无 `$(`)—— 吞【验证行】之 `rc`
#   ★ 二形合 **`21`** 处(`R05` 裁1 之 `J 19→21` **逐数相符**)。
#   ★★ `v1.9.18`(承 `test` `A` 段 · 面 `f051106a0` 之报): 检查2 守③ 之【丁臂】新增一 J 形
#     (`verify_release_gate_selftest.sh` 之 `… > "$repo/post.log" 2>&1 || true`)
#     ⇒ 二形合 **`22`** 处 ∧ **`14`** 键。
#   ★★ `v1.10.3`(承 `test` `PR` 流水线诊断 `A1` ∧ `ar` `R22`/`R23`): `4ad33e50e` 之自检臂新增二 J 形
#     (`noanchor.log`/`oldanchor.log`)∧ `ok.log` 多重度 `5→6` ⇒ 二形合 **`25`** 处 ∧ **`15`** 键。
#     ★ 同 `v1.9.18` 之律: **唯增册键 + 同步字面, 不改谓词**(禁以放宽判据充修)。
#     ★ 定性(照实): 该腿**咬合正确**(新 J 类行出现 ⇒ 必红)—— 病在【**册未随制品同批动**】
#       (承 [[fixture-digest-pin-must-move-with-fixture]] 同律)⇒ 本批唯**增册键**(`J_ALLOW`)
#       +同步下三处字面, **不改谓词**(★ 禁以扩谓词或放宽判据充修)。
#   ★★ 脆点(一手): 形1 若书 `\) > `(`>` 后**带空格**)⇒ **漏** `golden_baseline_sm33.sh:87`
#     (该处为 `>"$snap/…` **无空格**)⇒ 得 `19`。★ 正形 = `\) *> *`(**不依赖排版**)。
#
# ★ 判据:
#   ① `J` 类之**集合 ⇄ 多重度**须与 `allow-list` **逐键逐数相符**
#      (★ 名单**外**者 ⇒ 红「**新增 J 类**」; ★ 名单**内**而实少者 ⇒ 红「**名单腐**」)
#   ② `M` 类(读值/计数/清理/准备)**印全名单**(计数 + 逐处具名)—— ★ 放行
#   ②之补(`R18` 裁1)`M` 类【赋值形】之**格式检查**(`⚠ 空值未显名` / `⚠ 默认值冒充读数`)
#      —— ★ **只印 + 计数 · 不判红**(逐处语义不判 · 不膨胀新判据)
#   ③ 对照: 副本注入一处 `J` 形 ⇒ **必红**(★ 造法**禁依赖现面之形** · 承 `R14` 通用律)
#
# ★ 域: `.xuanwu/**` + `scripts/tests/**` **活码** = 剔【注释物理行】∧ 剔 `*.md`
#   (★ 非活码剔域: `.md` 引文 ∧ 探针**字面** · 承 `R05` 裁1)。
#
# ★★ 并载(照实 · 限): `M` 类之「**空值须显名 `<不可读>`**」系**逐处语义**之判
#   ⇒ ★ 静态**不可靠** ⇒ ★ 本腿**只印名单 · 不判红**(★ **照实显名** · **候 `ar` 定是否另立**)。
#   ★★ `R18` 裁1(**已裁**): **不另立**新判据 · 归 `F5` 本体余项 ⇒ ★ 落【**格式检查**】
#     (赋值形 M 类: `⚠ 空值未显名` / `⚠ 默认值冒充读数`)—— ★ **只印 + 计数 · 不判红**。
#
# 用法: bash scripts/tests/no_swallow_leg.sh
# 退出码: 0 判据达 / 1 判据不达 / 2 器之自败
set -uo pipefail
cd "$(dirname "$0")/../.." || exit 1
ROOT="$(pwd)"

# ── `J` 类 allow-list(★ 键 = `档 @@ 归一形` · 数 = 多重度)──────────────────
# ★★ 键取【归一形】**非**行号 —— 由: 行号随他处增删而**腐**(★ 承
#   [[fixture-digest-pin-must-move-with-fixture]] 之同族: 钉须随制品同批动)。
read -r -d '' J_ALLOW <<'ALLOW' || true
6 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && bash scripts/verify_release.sh) > "$repo/ok.log" 2>&1 || true
4 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && bash scripts/verify_release.sh) > "$repo/bad.log" 2>&1 || true
2 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && env -u XW_ADJUDICATE_SKIP bash scripts/verify_release.sh) > "$repo/nokey.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && XW_ADJUDICATE_SKIP="$keys" bash scripts/verify_release.sh) > "$repo/right.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && XW_ADJUDICATE_SKIP="$wrong" bash scripts/verify_release.sh) > "$repo/wrong.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && XW_ADJUDICATE_SKIP="$bare" bash scripts/verify_release.sh) > "$repo/bare.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && bash scripts/verify_release.sh) > "$repo/out.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && bash scripts/verify_release.sh) > "$repo/post.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && bash scripts/verify_release.sh) > "$repo/none.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && bash scripts/verify_release.sh) > "$repo/nolabel.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && bash scripts/verify_release.sh) > "$repo/noanchor.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && bash scripts/verify_release.sh) > "$repo/oldanchor.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo" && bash scripts/verify_release.sh) > "$repo/cond.log" 2>&1 || true
1 @@ scripts/tests/verify_release_gate_selftest.sh @@ (cd "$repo2" && bash scripts/verify_release.sh) > "$repo2/out.log" 2>&1 || true
1 @@ scripts/tests/golden_baseline_sm33.sh @@ "$@" --cwd "$ws" ) >"$snap/stdout.raw" 2>"$snap/stderr.raw" || true
1 @@ .xuanwu/snippets/install-cargo-binstall.sh @@ "/usr/local/bin/${BIN_NAME}" --version || "/usr/local/bin/${BIN_NAME}" -V || true
ALLOW

# ★★ 剔器自身之由(**本席当场自捕** · 承 [[logger-counts-itself-in-dirty-count]]):
#   本器之**源码**含 `|| true` 之**字面**(`allow-list` heredoc ∧ `echo` 正文 ∧ `read … || true` 惯用形)
#   ⇒ ★ 若不剔 ⇒ **器自计脏数** ⇒ 计数**虚高**(首版实测: J 计数被自污染至 ≫ 21)。
# ★ 正形 = **具名剔除** ∧ ★ **自检该剔除非 `no-op`**(承 [[exclusion-must-match-the-name-it-excludes]])。
SELF_REL="scripts/tests/no_swallow_leg.sh"

echo "== no-swallow · 面 =="
echo "  支 = $(git rev-parse --abbrev-ref HEAD)"
echo "  尖 = $(git rev-parse HEAD)"
echo "  树 = $(git rev-parse 'HEAD^{tree}')"
echo "  器 sha256 = $(sha256sum "$0" | awk '{print $1}')"
echo "  剔器自身 = $SELF_REL(★ 由: 本器源码含 \`|| true\` 字面 ⇒ 不剔则**自计脏数**)"

# ── 活码视图(剔注释物理行 · 剔 *.md · ★ 剔器自身 ∧ 剔【非源产物】)──────────
# ★★ 剔【非源产物】之由(**本席当场自捕**): 域内 `scripts/tests/__pycache__/*.pyc` 系**二进制**
#   ⇒ ★ `grep` 判 `binary file matches` ⇒ **静默丢行** ⇒ 计数**坍**(首版实测: J 由 21 坍为 `1`)。
#   ★ 险与 [[face-present-needs-face-complete]] 同族: 面之【在】不承面之【全】。
# ★ 正形 = **剔 `__pycache__`**(非交付件 · 构建产物)∧ ★ `grep -a` 兜底。
alive() { # alive <仓根> ⇒ `档:行:文`(剔器自身 ∧ 剔 __pycache__)
    local r="$1"
    find "$r/.xuanwu" "$r/scripts/tests" -type d -name '__pycache__' -prune -o -type f ! -name '*.md' -print 2>/dev/null | sort \
    | while IFS= read -r f; do
        rel="${f#"$r"/}"
        [ "$rel" = "$SELF_REL" ] && continue
        awk -v F="$rel" '!/^[[:space:]]*#/ { printf "%s:%d:%s\n", F, NR, $0 }' "$f"
      done
}
norm() { printf '%s' "$1" | tr -s ' \t' ' ' | sed -e 's/^ //' -e 's/ $//'; }
key()  { # key <档:行:文> ⇒ `档 @@ 归一形`
    local row="$1" f ln s
    f="${row%%:*}"; ln="${row#*:}"; ln="${ln%%:*}"
    s="${row#*:}"; s="${s#*:}"
    printf '%s @@ %s\n' "$f" "$(norm "$s")"
}

J_LIST="$(mktemp)"; M_LIST="$(mktemp)"; ALL_LIST="$(mktemp)";
trap 'rm -f "$J_LIST" "$M_LIST" "$ALL_LIST"' EXIT

alive "$ROOT" | grep -F '|| true' > "$ALL_LIST"
while IFS= read -r row; do
    [ -z "$row" ] && continue
    k="$(key "$row")"
    s="${k#* @@ }"
    if grep -qE '\) *> *[^|]*\|\| true' <<<"$s" || { [[ "$s" == *'|| true' ]] && [[ "$s" != *'$('* ]] && [[ "$k" == .xuanwu/* ]]; }; then
        printf '%s\n' "$k" >> "$J_LIST"
    else
        printf '%s\n' "$k" >> "$M_LIST"
    fi
done < "$ALL_LIST"

RC=0
N_J="$(wc -l < "$J_LIST")"; N_M="$(wc -l < "$M_LIST")"
# ★ 剔器自身之**自检**(★ 禁 no-op · 承 [[exclusion-must-match-the-name-it-excludes]])
if [ -f "$ROOT/$SELF_REL" ] && [ -z "$(find "$ROOT/scripts/tests" -type f -name "$(basename "$SELF_REL")" 2>/dev/null | head -2 | tail -1)" ]; then
    : # 唯此一档 ⇒ 剔除非 no-op 之前提
fi
N_SELF="$(find "$ROOT/scripts/tests" -type f -name 'no_swallow_leg.sh' | wc -l)"
echo
echo "  剔器自身之自检: 命中档数 = $N_SELF(期 ≥ 1 ⇒ 剔除非 no-op)"
[ "$N_SELF" -ge 1 ] || { echo "  ✗ 排除成 no-op($SELF_REL 不在域内)⇒ 谓词域与所剔之名不同形" >&2; RC=1; }
echo
echo "-- 判据① J 类(判据执行行)⇄ allow-list"
echo "  J 类计数 = $N_J(期 = 25)"
sort "$J_LIST" | uniq -c | sort -rn | sed 's/^/    /'

if [ "$N_J" -ne 25 ]; then
    echo "  ✗ 判据① 计数不符: $N_J ≠ 25" >&2; RC=1
fi
# 逐键逐数比对
sort "$J_LIST" | uniq -c | awk '{$1=$1; print}' | sed -E 's/^([0-9]+) (.*)$/\1 @@ \2/' | sort > "$J_LIST.agg"
printf '%s\n' "$J_ALLOW" | sed '/^$/d' | sort > "$J_LIST.allow"
if diff -u "$J_LIST.allow" "$J_LIST.agg" > /dev/null 2>&1; then
    echo "  ✓ 判据① 集合 ⇄ 多重度 **逐键逐数相符**(15 键 / 25 处)"
else
    echo "  ✗ 判据① 与 allow-list 不符(★ 名单外 = 新增 J 类; ★ 名单内而少 = 名单腐):" >&2
    diff -u "$J_LIST.allow" "$J_LIST.agg" | sed 's/^/    /' >&2
    RC=1
fi

echo
echo "-- 判据② M 类(读值/计数/清理/准备 · **放行**)全名单"
echo "  M 类计数 = $N_M"
sort "$M_LIST" | sed 's/^/    /'
echo "  ★ 并载(照实 · 限): M 类之「空值须显名 <不可读>」系**逐处语义**判 ⇒ 本腿**只印名单 · 不判红**。"

# ── 判据②之补(★★ `R18` 裁1 余项 · **格式检查** · 逐处语义【不判】)────────────
# ★ 由(承 `F5 AC③` ∧ [[shell-default-expansion-masquerades-as-reading]]):
#   赋値形 M 类若吞错 ⇒ 变量得**空串** ⇒ ★「**无读数**」与「**读数为空**」**不可分**。
# ★ 正形 = 无读数记【**显名占位**】(`<不可读>` / `n/a`)∧ ★ **禁** `${VAR:-<值>}` 之**默认值冒充读数**
#   (★ `${VAR:-0}` 使「无读数」与「读数为 `0`」不可分 ⇒ **假红/假绿**)。
# ★★ 本补【**只印 ⚠ + 计数** · **不判红**】—— 由(`R18` 裁1): **逐处语义不判** ∧ 承 `R04` 判据面最小化
#   ⇒ **不膨胀新判据**; 上列 ⚠ 供 `ar` 定夺是否另立。
#   ★ 然★ **器须有判别力**(承 [[control-comparison-must-be-able-to-flip]])⇒ 本补之器**另受对照**
#     (见判据③ 之第二组)—— ★ **对照之判归判据③**(**非**新判据)。
PLACEHOLDER_RE='<不可读>|n/a|unknown|unavailable|未取|不判'

# m_empty_scan <仓根> ⇒ 逐行 `KIND\t档:行[\t值]`
#   `ASSIGN` = 赋值形 M 类(分母)| `RISK` = ⚠ 空值未显名 | `MASQ` = ⚠ 默认值冒充读数
m_empty_scan() {
    local r="$1" row f rest ln s ns ctx nxt named masq dflt v
    alive "$r" | grep -F '|| true' | while IFS= read -r row; do
        f="${row%%:*}"; rest="${row#*:}"; ln="${rest%%:*}"; s="${rest#*:}"
        ns="$(norm "$s")"
        # 唯【赋值形】可致空值(★ 其余子形无值可空)
        [[ "$ns" =~ ^[A-Za-z_][A-Za-z0-9_]*= ]] || continue
        printf 'ASSIGN\t%s:%s\n' "$f" "$ln"
        ctx="$ns"
        if [ -r "$r/$f" ]; then
            nxt="$(sed -n "$((ln + 1))p" "$r/$f" 2>/dev/null)"
            ctx="$ctx
$(norm "$nxt")"
        fi
        named=0; masq=""
        grep -qE "$PLACEHOLDER_RE" <<<"$ctx" && named=1
        grep -qE '\[[[:space:]]*-[nz][[:space:]]' <<<"$ctx" && named=1
        while IFS= read -r dflt; do
            [ -z "$dflt" ] && continue
            v="${dflt##*:-}"; v="${v%\}}"
            if grep -qE "$PLACEHOLDER_RE" <<<"$v"; then named=1; else masq="$dflt"; fi
        done < <(grep -oE '\$\{[A-Za-z_][A-Za-z0-9_]*:-[^}]*\}' <<<"$ctx" 2>/dev/null || true)
        if [ -n "$masq" ]; then
            printf 'MASQ\t%s:%s\t%s\n' "$f" "$ln" "$masq"
        elif [ "$named" -eq 0 ]; then
            printf 'RISK\t%s:%s\t%s\n' "$f" "$ln" "$ns"
        fi
    done
}

echo
echo "-- 判据②之补(★ R18 裁1 余项 · **格式检查**)M 类空值显名"
M_SCAN="$(m_empty_scan "$ROOT")"
N_M_ASSIGN="$(grep -c '^ASSIGN' <<<"$M_SCAN" || true)"
N_M_RISK="$(grep -c '^RISK' <<<"$M_SCAN" || true)"
N_M_MASQ="$(grep -c '^MASQ' <<<"$M_SCAN" || true)"
N_M_NAMED=$((N_M_ASSIGN - N_M_RISK - N_M_MASQ))
grep '^RISK' <<<"$M_SCAN" | cut -f2,3 | sed 's/^/    ⚠ 空值未显名: /'
grep '^MASQ' <<<"$M_SCAN" | cut -f2,3 | sed 's/^/    ⚠ 默认值冒充读数: /'
echo "  赋值形 M 类 = $N_M_ASSIGN(分母)· 已显名 = $N_M_NAMED · ⚠ 空值未显名 = $N_M_RISK · ⚠ 默认值冒充读数 = $N_M_MASQ"
echo "  ★ 本补【不判红】(R18 裁1: 逐处语义不判)—— 上列 ⚠ 系**读数** · 供 ar 定夺是否另立判据。"

# ── 判据③ 对照(★ 器须能翻转 · 仓外副本 · **与现面之形无关**)──────────────
echo
echo "-- 判据③ 对照: 副本注入一处 J 形 ⇒ 必红(★ 造法不依赖现面之形)"
TMPD="$(mktemp -d)"; trap 'rm -f "$J_LIST" "$M_LIST" "$ALL_LIST" "$J_LIST.agg" "$J_LIST.allow"; rm -rf "$TMPD"' EXIT
mkdir -p "$TMPD/x/scripts/tests" "$TMPD/x/.xuanwu/snippets"
printf '#!/bin/bash\nf(){ ( cd /tmp && bash scripts/verify_release.sh ) > /tmp/a.log 2>&1 || true; }\n' > "$TMPD/x/scripts/tests/probe.sh"
printf '#!/bin/bash\necho hi\n' > "$TMPD/x/.xuanwu/snippets/plain.sh"
N_PROBE="$(alive "$TMPD/x" | grep -F '|| true' | while IFS= read -r r; do key "$r"; done | grep -cE '\) *> *[^|]*\|\| true')"
if [ "$N_PROBE" -ge 1 ]; then
    echo "  ✓ 对照咬合(注入 J 形 ⇒ 谓词命中 $N_PROBE 处 · 翻转得证)"
else
    echo "  ✗ 对照未咬合(注入 J 形竟 0 命中)—— 谓词无判别力" >&2; RC=1
fi
printf '#!/bin/bash\nf(){ ( cd /tmp && bash scripts/verify_release.sh ) > /tmp/a.log 2>&1 ; }\n' > "$TMPD/x/scripts/tests/probe.sh"
N_PROBE2="$(alive "$TMPD/x" | grep -F '|| true' | while IFS= read -r r; do key "$r"; done | grep -cE '\) *> *[^|]*\|\| true')"
if [ "$N_PROBE2" -eq 0 ]; then
    echo "  ✓ 反向对照(撤去 \`|| true\` ⇒ 0 命中 · 隔离「凡 > 皆命中」之退化)"
else
    echo "  ✗ 反向对照未过(撤去 \`|| true\` 仍命中 $N_PROBE2)—— 谓词过宽" >&2; RC=1
fi

# ── 判据③ 第二组: ②之补之器须有【判别力】(★ 承 [[control-comparison-must-be-able-to-flip]])──
# ★ 由: ②之补**不判红** ⇒ 若其器**恒报 `0`** 则与「本无风险」**不可分** ⇒ 读数**零证力**
#   (★ 此即 `P0-5` 所治之【零判别力假绿】同族)⇒ ★ 故其器**另受对照**。
# ★★ 并载(照实): 本组**判红** —— 然其所判者 = 「**器是否有判别力**」(**非**「M 类是否合规」)
#   ⇒ ★ **不**与 `R18` 裁1「不另立判据」相悖(**未**对 M 类逐处下判)。
echo
echo "-- 判据③ 第二组: ②之补之器(M 类空值显名)须能【翻转】"
printf '#!/bin/bash\nv="$(grep -c x /dev/null || true)"\n' > "$TMPD/x/scripts/tests/probe2.sh"
C_RISK="$(m_empty_scan "$TMPD/x" | grep -c '^RISK' || true)"
if [ "$C_RISK" -ge 1 ]; then
    echo "  ✓ 咬合(赋值形吞错而无显名 ⇒ 报 ⚠ 空值未显名 $C_RISK 处)"
else
    echo "  ✗ 未咬合(赋值形吞错竟不报 ⚠)—— ②之补之器零判别力" >&2; RC=1
fi
printf '#!/bin/bash\nv="$(grep -c x /dev/null || true)"; v="${v:-<不可读>}"\n' > "$TMPD/x/scripts/tests/probe2.sh"
C_RISK2="$(m_empty_scan "$TMPD/x" | grep -c '^RISK' || true)"
C_MASQ2="$(m_empty_scan "$TMPD/x" | grep -c '^MASQ' || true)"
if [ "$C_RISK2" -eq 0 ] && [ "$C_MASQ2" -eq 0 ]; then
    echo "  ✓ 显名占位 \`\${v:-<不可读>}\` ⇒ 0 报(隔离「凡赋值皆报」之退化)"
else
    echo "  ✗ 显名占位仍被报(RISK=$C_RISK2 MASQ=$C_MASQ2)—— 谓词过宽" >&2; RC=1
fi
printf '#!/bin/bash\nv="$(grep -c x /dev/null || true)"; v="${v:-0}"\n' > "$TMPD/x/scripts/tests/probe2.sh"
C_MASQ3="$(m_empty_scan "$TMPD/x" | grep -c '^MASQ' || true)"
if [ "$C_MASQ3" -ge 1 ]; then
    echo "  ✓ 默认值冒充读数 \`\${v:-0}\` ⇒ 报 ⚠ MASQ $C_MASQ3 处(★ 承 [[shell-default-expansion-masquerades-as-reading]])"
else
    echo "  ✗ 未咬合(\`\${v:-0}\` 竟不报 MASQ)—— 该子判零判别力" >&2; RC=1
fi
rm -f "$TMPD/x/scripts/tests/probe2.sh"
rm -rf "$TMPD"

echo
echo "== 判据(★ 唯载【不变量】· 读数唯见上列各行 · 禁由本块推)=="
echo "  · 判据① = J 类集合⇄多重度须与 allow-list(15 键 / 25 处)逐键逐数相符;"
echo "  · 判据② = M 类印全名单(放行)· ★ 空值显名之判本腿【不判】(照实);"
echo "  · 判据②之补(R18 裁1)= M 类【赋值形】之**格式检查**(⚠ 空值未显名 / ⚠ 默认值冒充读数)"
echo "      —— ★ **只印 ⚠ + 计数 · 不判红**(逐处语义不判 · 不膨胀新判据);"
echo "  · 判据③ = 器须能【咬合】(注入 J 形必命中)∧【不过宽】(撤 \`|| true\` 必不命中);"
echo "  · 判据③第二组 = ②之补之器须能【翻转】(赋值吞错必报 RISK ∧ 显名占位必不报 ∧ \${v:-0} 必报 MASQ)"
echo "      —— ★ 所判者 = 「器有判别力」(**非**「M 类合规」);"
echo "  · 域 = .xuanwu/** + scripts/tests/** 活码(剔注释物理行 ∧ 剔 *.md);"
echo "  · 形1 = \`\\) *> *[^|]*\\|\\| true\` ∧ 形2 = .xuanwu/** 内末行验证 \`|| true\`(无 \`\$(\`)."
exit "$RC"