shellcheck
は次の警告を生成しました
SC2155: Declare and assign separately to avoid masking return
values
このコード行について
local key_value=$(echo "$current_line" | mawk '/.+=.+/ {print $1 }')
「戻り値のマスキング」とはどういう意味ですか、それは前述の警告にどのように関係しますか?
変数をlocal
または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 }')
これは私が頻繁に無視するシェルチェックルールであり、その変数宣言の戻り値に基づいて行動しようとしているのでない限り、IMOは無視しても安全です。
これを無視するには、スクリプトの先頭に次の行を追加します(もちろんハッシュバングの下にあります)。
# shellcheck disable=SC2155