2

次のbashスクリプトがあります:

dpkg-query --show --showformat='${Status}\n' "$i" 2> \
      /dev/null | grep "install ok installed" &> /dev/null
if [[ $? -eq 0 ]]; then
  l_var_is_desktop="true"
fi

そして、ShellCheck ユーティリティ ( https://www.shellcheck.net/ ) から次の出力が得られます。

$ shellcheck myscript

Line 17:
    if [[ $? -eq 0 ]]; then
          ^-- SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

$ 

この警告へのリンクは次のとおりです: https://github.com/koalaman/shellcheck/wiki/SC2181

これを変更するための最良の方法は何ですか。コマンドは長すぎて 1 行に収めることができません。ShellCheck 無視ルールの使用は避けたいと思います。

ローカル変数を作成してコマンドの出力を保存しようとしましたが、これは他のルールに違反しています。

4

1 に答える 1