bashのset -eがよくわからないw
$ cat inline.sh
#!/bin/bash
set -ex
false && echo ここに来ない
echo ここに来てほしい
$ bash inline.sh
+ false
+ echo ここに来てほしい
ここに来てほしい
$ cat function.sh
#!/bin/bash
set -ex
f() {
false && echo ここに来ない
}
f
echo ここに来てほしい
$ bash function.sh
+ f
+ false
あー。単体の関数がエラー終了してるからexitするんだ。
man bash
> The shell does not exit if the command that fails is part of the command list immediately following a while or until keyword, part of the test following the if or elif reserved words, part of any command executed in a && or || list except the command following the final && or ||, any command in a pipeline but the last, or if the command's return value is being inverted with !.