引数のパスに対してのcd
の成否でCATCH
が表示されたりされなかったり。
FINALLY
は常に表示される。
#!/bin/sh
set -eu
trap catch ERR
trap finally EXIT
function catch {
echo CATCH
}
function finally {
echo FINALLY
}
echo pre
cd $1
echo post
exit 0
成功例
$ ./test.sh /
pre
post
FINALLY
失敗例
$ ./test.sh /root
pre
./test.sh: line 16: cd: /root: 許可がありません
CATCH
FINALLY