Linux 多条命令同时执行的一些姿势

命令之间用 ; 隔开

说明:各命令的执行结果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。

root@ubuntu:/# echo $HOME; echo $LANG
/root
en_US.UTF-8

命令之间用 && 隔开

说明:若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。

root@ubuntu:~# cd Cloud && mkdir test
root@ubuntu:~/Cloud# ls
test
root@ubuntu:~/Cloud# cd Cloudaaa && mkdir test
-bash: cd: Cloudaaa: No such file or directory

命令之间用 || 隔开

说明:|| 是或的意思,只有前面的命令执行失败后才去执行下一条命令

/* && 不会输出 123 */
root@ubuntu:~/Cloud# cd Cloudaaa && echo '123'
-bash: cd: Cloudaaa: No such file or directory
/* 用 || 可以输出 123,因为 cd Cloudaaa 失败了 */
root@ubuntu:~/Cloud# cd Cloudaaa || echo '123'
-bash: cd: Cloudaaa: No such file or directory
123

命令之间用 | 隔开

说明:在命令行中,| 表示管道,管道可以将一个命令的输出导向另一个命令的输入,从而让两个(或者更多命令)像流水线一样连续工作,不断地处理文本流。

root@ubuntu:~/Cloud# env | grep LANG
LANG=en_US.UTF-8
LANGUAGE=en_US:

env 获取所有环境变量将结果传给下一个命令,所以用 grep 搜索 LANG 就会有结果显示。

评论