私は現在POSIXシェルスクリプトでこれを行っています。
success=false
pv --wait "$input_filename" | openssl enc -aes-256-cbc -d -salt -out "$output_filename" && success=true
if [ "$success" = "true" ]
...
問題は、私がこれを正しくしているかどうかわからないということです。
たとえば、私はこのアプローチだけです$?
。
なぜ私は気にしますか?
まあ、なぜならShellCheck.net私に警告する:
SC2181$? を使用して間接的に確認するのではなく、「if mycmd;」を使用して直接終了コードを確認してください。
ベストアンサー1
コマンドが成功したことを確認する必要がある場合は、このif command; then foo; else bar; fi
方法を使用してください。
ただし、何らかの理由でより複雑なエラー処理が必要な場合は、確認された値が$?
より適切になります。
command
case $? in
0) foo ;;
1) bar ;;
2) baz ;;
*) something_else ;;
esac