Linux 连续执行多条命令的方法

多个命令可以放在一行上,其执行情况得依赖于用在命令之间的分隔符。

如果每个命令被一个分号 (;) 所分隔,那么命令会连续的执行下去,如

引用

[email protected]:/proc> printf "%s/n" "This is executed" ; printf "%s/n" "And so is this"
This is executed
And so is this

如果每个命令被 && 号分隔,那么这些命令会一直执行下去,如果中间有错误的命令存在,则不再执行后面的命令,没错则执行到完为止

引用

[email protected]:/proc> date && printf "%s/n" "The date command was successful"
2009年 08月 28日 星期五 18:28:16 CST
The date command was successful

所有命令成功执行完毕。

引用

[email protected]:/proc> date && llk && printf "%s/n" "The date command was successful"
2009年 08月 28日 星期五 18:28:52 CST
bash: llk: command not found

后面的成功执行提示语句不会被输出,因为 llk 命令无法识别。

如果每个命令被双竖线(||)分隔符分隔,如果命令遇到可以成功执行的命令,那么命令停止执行,即使后面还有正确的命令则后面的所有命令都将得不到执行。假如命令一开始就执行失败,那么就会执行 || 后的下一个命令,直到遇到有可以成功执行的命令为止,假如所有的都失败,则所有这些失败的命令都会被尝试执行一次

引用

[email protected]:/proc> date || ls / || date ‘duck!‘ || uname -a
2009年 08月 28日 星期五 18:33:18 CST

第一个命令成功执行!后面的所有命令不再得到执行。

引用

[email protected]:/proc> date ‘duck!‘ || dakkk || uname -a
date: 无效的日期 “duck!”
bash: dakkk: command not found
Linux linux-beyes 2.6.27.29-0.1-pae #1 SMP 2009-08-15 17:53:59 +0200 i686 i686 i386 GNU/Linux

前面的两个命令都失败了,直到找到最后一个可以成功执行的命令为止。

时间: 2024-11-06 07:40:40

Linux 连续执行多条命令的方法的相关文章

Linux 连续执行多条命令

每条命令使用";"隔开,则无论前边的命令执行成功与否都会继续执行下一条命令 这里,故意将第二条命令中的echo多写了一个o,命令执行出错,但并不影响后续命令的执行 可以这么想,如果用分号来间隔命令,就相当于将命令分隔在了不同的行,无论前一行的命令成功或失败,都不影响下一行命令的执行. $ echo 1; echoo 2; echo 3; echo 4 1 -bash: echoo: command not found 3 4 若命令间使用"&&"隔开

linux shell 执行多个命令的几种方法

在命令行可以一次执行多个命令,有以下几种: 1.每个命令之间用;隔开 说明:各命令的执行给果,不会影响其它命令的执行.换句话说,各个命令都会执行, 但不保证每个命令都执行成功. 2.每个命令之间用&&隔开 说明:若前面的命令执行成功,才会去执行后面的命令.这样可以保证所有的命令执行完毕后,执行过程都是成功的. 3.每个命令之间用||隔开 说明:||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功 一条命令为止. linux shell 执行多个命令的几种方法

使用批处理文件同时打多个CMD窗口且执行多条命令

使用批处理文件时,可以用下面方法打打多个CMD窗口,并且每个窗口中执行多条命令. start 用来启动一个应用cmd /k 表示cmd后面的命令执行完后不关闭窗口.如果要在执行完成后关闭窗口可以用/c .详细请使用cmd/?查看"命令1&&命令2&&.." 将要执行的多条命令使用引号全部包起来,并且在命令间用&&分隔.如果只有一条命令则不用引号也可以. @echo off start cmd /k "cd/d d:\&&

paramiko SSHClient调用sudo权限和执行多条指令的方法

最近一段时间在研究paramiko,发现还蛮好用的,但是对于ubuntu来说,root权限一直是问题,解决的办法国外论坛也有提供, 而且也可以同时执行多条命令. try:     ssh_client = paramiko.SSHClient()     ssh_client.load_system_host_keys()     ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())     ssh_client.con

supervisor的command执行两条命令

supervisor的进程的comand配置参数只能写一个命令 1.要执行多条命令,可以写个sh文件包含多条命令,然后sh -x   xxxx.sh,但这样又多了一个文件, 2.把所有命令放在字符串,然后用eval来执行,这样在shell窗口可以执行,但放在supervisor报找不到eval命令.比如: command = eval  "python -u app/utils_ydf/git_client.py&&gunicorn -w 9 -k gevent --bind 0

linux 下shell脚本执行多个命令的方法

1.每个命令之间用;隔开说明:各命令的执行给果,不会影响其它命令的执行.换句话说,各个命令都会执行,但不保证每个命令都执行成功. 2.每个命令之间用&&隔开说明:若前面的命令执行成功,才会去执行后面的命令.这样可以保证所有的命令执行完毕后,执行过程都是成功的.例如:cat /etc/redhat-release && yum -y update && yum list | grep installed > installed.txt  三个命令3.每个

Linux中的一条命令详解

最近闲来无事,偶尔看到有人在QQ群里提问,有关-rw-类似的命令,这些命令我也略知一二,是在Linux里面才出现的,现在我来仔细详解一下有关这句命令的意思: -rwxrwx--- 1 root plugdev 18M 2007-02-28 18:05 ActionCube_v0.92.tar.bz2         -rwxrwx--- 1 root plugdev 60M 2007-04-30 22:52 nexuiz-223.zip         -rwxrwx--- 1 root plu

npm下scripts执行多条命令下mac与windows的差异

window下写法: mac下写法: mac下使用&&来连接多条命令并不会把之前赋值的projectName带回到当前执行环境的语义环境里,如果去掉&&,改成空格 则webpack及webpack以后的命令都不会执行,所以就出现一个问题,使用&&则之前的变量无法获取,不使用&&则后面的命令无法执行,在请教了同事(linux专家)后,改成不适用&& 也不是用空格,而是使用分号;

linux中新增一个shell命令的方法

1. 可以在一个自己建立的shell脚本中定义一个函数,使用 ". xxx.sh" 或者 "source xxx.sh" 运行这个shell脚本之后,其中的function就自动成为了当前shell中的新增命令了. 2. android编译配置环境时会运行. build/envsetup.sh脚本,就是使用这种方法为当前shell新增了一些命令,如:croot, lunch, mm, mmm, mma, cgrep等等.一直以为envsetup.sh中做了什么高级操