当shell需要一次执行多个命令的时候,命令之间需要用连接符连接,不同的连接符有不同的效果。

1、命令之间用 ; 顺序符隔开

; 分号,没有任何逻辑关系的连接符。各命令之间的执行成功与否彼此没有任何影响,都会一条一条执行下去。也就是说,各个命令都会执行,保证每个命令都执行。

cd /home/pi;pwd命令先是进入目录再显示目录, ffffff;pwd命令第一条执行失败,但是不影响接下来的ped命令的执行。

1d95de626f3e

2、命令之间用&&逻辑与隔开

&& 逻辑与,当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行。这样可以保证所有的命令执行完毕后,执行过程都是成功的。

执行fffff&&pwd则会显示-bash: fffff: command not found,后面的pwd也不会执行。

1d95de626f3e

3、命令之间用||逻辑或隔开

|| 逻辑或,当用此连接符连接多个命令时,前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行。

fffff||pwd则会执行后面的pwd命令。

1d95de626f3e

4、命令之间用|管道符隔开

| 管道符,当用此连接符连接多个命令时,前面命令执行的正确输出,会交给后面的命令继续处理。若前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错。从而让两个(或者更多命令)像流水线一样连续工作,不断地处理文本流。

ps -ef | grep lvrt | grep -v grep命令则是通过管道符筛选出lvrt进程。

1d95de626f3e

5、数据库连续执行 -e

命令行连接数据库后,需要执行一条命令来

mysql -uphpmyadmin -pphpmyadmin -e "select version();" 此命令显示连接数据库,然后执行查看数据库版本。

mysql -uphpmyadmin -pphpmyadmin -e "show status;" | grep Connections |awk '{print $2}'

这一条命令就是连接数据库,然后查找关键字Connections,最后找到这一行的第二个参数。

echo cons=$(mysql -uphpmyadmin -pphpmyadmin -e "show status;" | grep Connections |awk '{print $2}')

这一条命令则是将命令的值赋值给变量cons。

1d95de626f3e

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐