psi*_*lia 124 syntax bash shell multiplatform
我通常;
习惯在一行中组合多个命令,但有些人更喜欢&&
.有什么区别吗?例如,cd ~; cd -
并且cd ~ && cd -
似乎让同样的事情.哪个版本更具可移植性,例如Android版shell还是支持bash-subset?
小智 182
如果先前的命令失败,;
则第二个命令将运行.
但是&&
第二个不会运行.
这是操作之间的"惰性"逻辑"AND"操作数.
jm6*_*666 54
我正在使用&&
因为很久以前在附近的电脑:
root# pwd
/
root# cd /tnp/test; rm -rf *
cd: /tnp/test: No such file or directory
...
... and after a while ...
...
^C
Run Code Online (Sandbox Code Playgroud)
但没有帮助...;)
cd /tnp/test && rm -rf *
是安全的... ;)
Pas*_*uoq 21
In cmd1 && cmd2
,cmd2
仅在cmd1
成功时执行(返回0).
在cmd1 ; cmd2
,cmd2
则在任何情况下执行.
这两种构造都是符合POSIX标准的shell的一部分.
&&
表示如果前一个命令以状态0退出,则执行下一个命令.相反,||
如果先前的命令以不等于0的状态退出,则使用ie ;
执行.
当您需要采取特定操作时非常有用,具体取决于前一个命令是否完成.
小智 6
&&
允许有条件执行,同时;
始终执行第二个命令。
在eg中command1 && command2
,只有在用 终止command2
时才会执行,表示一切顺利,而在第二个命令中,无论结果是什么,都将始终执行。command1
exit 0
command1 ; command2
command1
;
无论其完成状态如何,分开执行的命令都是顺序执行的.
使用时&&
,仅当第一个命令成功完成时才执行第二个命令(返回退出状态为0).
这包含在bash手册页下Lists
.我希望任何类似Unix的shell都支持这两种运算符,但我不知道具体的Android shell.