引数のパスに対しての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