以下两个命令列表可移植等效吗?
$foo; echo $? #(1)
和
$foo && echo 0 || echo $? #(2)
后记
考虑这样定义的命令exit-status
:
#!/bin/sh
exit "$1"
POSIX 标准是否禁止以下行为?
> exit-status 2 && echo "impossible branch"; echo $?
1
如果不是,那么符合 POSIX 的 shell 可能无法将两个最上面的命令列表等同起来。这和不便携不太一样……