我使用脚本利用的系统set -e
:
#!/bin/sh
set -e
echo 1
true
echo 2
true
echo 3
false
echo notreached
如果我这样做:
#!/bin/sh
set -e
echo 1
true
echo 2
true
echo 3
! false
echo reached
...到达最后一行。但是,如果我这样做:
#!/bin/sh
set -e
echo 1
true
echo 2
true
echo 3
! true
echo reached
...到达最后一行,即使! true
应该是false
.
更多测试:
user@linux:~$ ! false && echo ok
ok
user@linux:~$ ! true && echo ok
user@linux:~$
...所以在这些情况下,!
操作员可以正常工作。
但是,它不能与set -e
. 为什么?
相关: http: //mywiki.wooledge.org/BashFAQ/105 ...虽然这不能回答我的问题。