前のコマンドの終了ステータスをチェックする機能があり、0でない場合は複数のコマンドを実行する必要があります(成功)
revert()
{
if [ $? -ne 0 ]
then
echo $#
for c in $@
do
Execute command contained in passed string
done
echo "Operation failed. Reverting..."
exit 1
fi
}
この関数を呼び出そうとすると、次の出力が得られます。
revert "ls" "ls -la"
2
ls ls -la
auten.py canReach.sh chpass.sh newUser.sh popo secdir.sh
auten.py canReach.sh chpass.sh newUser.sh popo secdir.sh
No command '-la' found, did you mean:
Command 'tla' from package 'tla' (universe)
-la: command not found
明らかにスペースが問題であり、このページでいくつかの解決策を試しましたが、得られたのは同じ出力と1つの巨大な頭痛だけです。
したがって、応答する前に、私の関数を試して、目的の出力が得られるかどうかを確認してください。ありがとうございました。