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时才会执行,表示一切顺利,而在第二个命令中,无论结果是什么,都将始终执行。command1exit 0command1 ; command2command1
;无论其完成状态如何,分开执行的命令都是顺序执行的.
使用时&&,仅当第一个命令成功完成时才执行第二个命令(返回退出状态为0).
这包含在bash手册页下Lists.我希望任何类似Unix的shell都支持这两种运算符,但我不知道具体的Android shell.