質問: echo 'コピーを開始します' cp -p -v コピー元 コピー先 cp -p -v コピー元 コピー先 cp -p -v コピー元 コピー先 echo 'コピーが完了しました' のようなシェルスクリプトがあるのですが、cpに失敗した場合、 echo 'コピーが完了しました'の部分を echo 'コピーに失敗しました。'といった具合に分岐させたいのですが、どのような記述をすればよいでしょうか?
回答: 一つでも失敗したら最後に1回だけ「失敗しました」としたいのでしょうか。 であれば**各々**の"cp -p"の**直後**に、 ``` VAL=`expr $VAL + $?` ``` としてcpコマンドの戻り値を足しこんでいきます。 その後最後に ``` if [ $VAL -eq 0 ];then echo 'コピーが完了しました' else echo 'コピーが失敗しました' fi ``` とすればOKです。