shellcheck
次の警告を生成します
SC2155: Declare and assign separately to avoid masking return
values
このコード行の場合
local key_value=$(echo "$current_line" | mawk '/.+=.+/ {print $1 }')
「マスクされた戻り値」とは何を意味し、上記の警告とどのような関係がありますか?
答え1
local
変数を ed と宣言すると、export
それ自体が成功または失敗を返すコマンドです。
$ var=$(false)
$ echo $?
1
$ export var=$(false)
$ echo $?
0
したがって、command()の戻り値に対して操作を実行したい場合は、echo "$current_line" | mawk '/.+=.+/ {print $1 }'
ローカルアサーションが成功するたびに(ほぼ常にそうです)ゼロで終了するため、その操作は実行できません。
これを防ぐには、別々に宣言してから次のものを割り当てることをお勧めします。
local key_value
key_value=$(echo "$current_line" | mawk '/.+=.+/ {print $1 }')
これは私が頻繁に無視するシェルチェックルールであり、その変数宣言の戻り値に対して操作を試みないことを知っている限り、安全に無視できます。
スクリプトの上部(もちろんhashbangの下)に以下を追加することでこれを上書きできます。
# shellcheck disable=SC2155