Bash
Bash:“屏蔽返回值”是什麼意思?
shellcheck
產生以下警告SC2155: Declare and assign separately to avoid masking return values
對於這行程式碼
local key_value=$(echo "$current_line" | mawk '/.+=.+/ {print $1 }')
“屏蔽返回值”是什麼意思,它與上述警告有何關係?
當您將變數聲明為
local
or 或export
ed 時,它本身就是一個返回成功與否的命令。$ var=$(false) $ echo $? 1 $ export var=$(false) $ echo $? 0
因此,如果您想對命令的返回值 (
echo "$current_line" | mawk '/.+=.+/ {print $1 }'
) 執行操作,您將無法執行此操作,因為只要本地聲明成功(幾乎總是這樣),它將以 0 退出。為了避免這種情況,建議單獨聲明,然後分配:
local key_value key_value=$(echo "$current_line" | mawk '/.+=.+/ {print $1 }')
這是我經常忽略的 shellcheck 規則,只要您知道您沒有嘗試對該變數聲明的返回值採取行動,IMO 就可以安全地忽略。
您可以通過將以下內容添加到腳本頂部來忽略它(當然是在 hashbang 下方):
# shellcheck disable=SC2155