Linux 连续执行多条命令的方法(推荐)

每条命令使用";"隔开,则无论前边的命令执行成功与否都会继续执行下一条命令

这里,故意将第二条命令中的echo多写了一个o,命令执行出错,但并不影响后续命令的执行

可以这么想,如果用分号来间隔命令,就相当于将命令分隔在了不同的行,无论前一行的命令成功或失败,都不影响下一行命令的执行。

$ echo 1; echoo 2; echo 3; echo 4
1
-bash: echoo: command not found
3
4

若命令间使用"&&"隔开,则只有前边的命令执行成功了再会继续执行后边的命令

这里,故意将第二条命令中的echo多写了一个o,命令执行出错,echo 3便没有执行,因此echo4也没执行

$ echo 1 && echoo 2 && echo 3 && echo 4

1
-bash: echoo: command not found

若命令间使用"||"隔开,则只有前边的命令执行失败了再回继续执行后边的命令

这里echo 1执行成功则没有继续执行后边的echo 2,继而没有执行echo 3,echo 4

echo 1 || echo 2 || echo 3 || echo 4
1

这里echoo 1执行失败,因此开始执行echo 2,执行成功,因而后边的echo 3, echo4都没执行
echoo 1 || echo 2 || echo 3 || echo 4
-bash: echoo: command not found
2

根据以上规则分析几个比较特殊的例子,也即混合了集中分隔符的例子

echo 1执行成功了,紧接着后边有两个"||"因此echo 2, echo 3都没执行,后边遇到了&&,而这之前的命令组合被认为是执行成功的,因此echo 4得以执行
$ echo 1 || echo 2 || echo 3 &&  echo 4
1
4

echo 1执行成功了,继而执行echoo 2,执行失败,因此 echo 3不被执行,后边遇到了"||",而知之前的命令组合被认为是执行失败的,因此echo 4得以执行

$  echo 1 && echoo 2 && echo 3 || echo 4
1
-bash: echoo: command not found
4

echo 1执行成功了,继而执行echoo 2,执行失败,因此 echo 3不被执行,后边遇到了";",相当于把后边的命令放到了新行,这样的话无论如何后边的命令都会执行,因此echo 4得以执行
$ echo 1 && echoo 2 && echo 3 ; echo 4
1
-bash: echoo: command not found
4

echoo 1执行失败,后边为"||"因此echo 2得以执行,echo 2执行成功,紧接着后边有两个"||"因此echo 3,echo 4没有执行,后边遇到了&&,而之前的命令组合被认为是执行成功的,因此echoo5得以执行,执行发生错误,因此echo 6没有被执行,但后边是";",所以无论如何echo 7都会被执行
$ echoo 1 || echo 2 || echo 3 || echo 4 && echoo 5 && echo 6 ; echo 7
-bash: echoo: command not found
2
-bash: echoo: command not found
7

以上这篇Linux 连续执行多条命令的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Linux下安装mysql-5.6.4 的图文教程

    在开始安装前,先说明一下mysql-5.6.4与较低的版本在安装上的区别,从mysql-5.5起,mysql源码安装开始使用cmake了,因此当我们配置安装目录./configure --perfix=/.....的时候和以前的会有些区别,这点我们稍后会提到. 一:解压缩mysql-5.6.4-m7-tar.zip 1>  unzip mysql-5.6.4-m7-tar.zip   会生成mysql-5.6.4-m7-tar.gz的压缩文件 2> tar -zxvf mysql-5.6.4-

  • Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作

    一.修改操作系统核心参数 在Root用户下执行以下步骤: 1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件 输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,将下列内容加入该文件. oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 编辑完成后按Esc键,输入":wq"

  • linux正确重启MySQL的方法

    由于是从源码包安装的Mysql,所以系统中是没有红帽常用的servcie mysqld restart这个脚本 只好手工重启 有人建议Killall mysql.这种野蛮的方法其实是不行的,强制终止的话,如果造成表损坏,损失是巨大的. 这里推荐安全的重启方法 $mysql_dir/bin/mysqladmin -u root -p shutdown $mysql_dir/bin/safe_mysqld & mysqladmin和mysqld_safe位于Mysql安装目录的bin目录下,很容易找

  • Linux tar 压缩打包命令使用方法第1/2页

    tar命令  [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 -. 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩. -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩

  • 虚拟机中使用linux系启用文件共享之后的文件存在的位置方法

    一.使用共享文件夹传输数据 在自己建立的win7系统中的共享文件夹中存放一些文件,然后在linux系统中访问,其中Linux中的访问路径为:/mnt/hgfs/自己建立的文件夹名称 比如我在win7上建立的共享文件夹名称为shareFolder,则我的操作如下: [root@master shareFolder]# cd /mnt/hgfs/shareFolder/ 在这个目录下就能看win7上的文件,也可以从linux中拷贝文件到这个目录,则在win7上也能看见./p> 以上这篇虚拟机中使用l

  • linux下开启php的sockets扩展支持实例

    下个相同版本的php源码,进行编译安装,再按照上面步骤搞,生成的so.copy到rpm装的那个,修改php.ini进行扩展就行了, 或者到网上找相同版本,相同系统 的编译好的so文件. 在linux下给PHP安装socket扩展,参考方法如下: #cd /usr/soft/php/ext/sockets (进入原php安装文件下的sockets目录) #/usr/local/php/bin/phpize (运行安装后的php安装文件下的phpize) #./configure --prefix=

  • Linux在应用层读写寄存器的方法及实现实例

    Linux在应用层读写寄存器的方法 可以通过操作/dev/mem设备文件,以及mmap函数,将寄存器的地址映射到用户空间,直接在应用层对寄存器进行操作,示例如下: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <unistd.h> #include <fcntl.h> #include <unistd.h> #include <sys/mman

  • Linux 添加永久静态路由的方法

    1/5 首先让我们查看一下当前机器的路由表,执行如下命令:route -n [root@vnode33 network-scripts]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 135.252.214.1 0.0.0.0 UG 100 0 0 eth0 135.252.214.0 0.0.0.0 255.255.255.0 U 100 0 0

  • linux下用cron定时执行任务的方法

    名称 : crontab 使用权限 : 所有使用者 使用方式 : crontab file [-u user]-用指定的文件替代目前的crontab. crontab-[-u user]-用标准输入替代目前的crontab. crontab-1[user]-列出用户目前的crontab. crontab-e[user]-编辑用户目前的crontab. crontab-d[user]-删除用户目前的crontab. crontab-c dir- 指定crontab的目录. crontab文件的格式

  • Linux 连续执行多条命令的方法(推荐)

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

  • 在linux shell脚本中root切换到普通用户执行脚本或命令的方法

    需求: 安装deb包,设置程序安装后启动,不需要root权限启动程序 | 不能用root权限启动 其他开机启动选项 方法:root临时降低权限 secUser=`who am i | awk '{print $1}'` #echo $secUser su $secUser -c <指令> > /dev/null 2>&1 & #这一条命令的执行权限是临时的,只在本条语句起作用 id -u # 结果为0,还是root用户权限 附: su --help -c, --co

  • java如何连续执行多条cmd命令

    java连续执行多条cmd命令 命令之间用&连接 例如: Process p = Runtime.getRuntime().exec("cmd /c d: & cd bin/"); java ssh登录执行多条cmd命令 java登录ssh执行多条命令,解决出现more自动回车的问题 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import ja

  • docker run起来之后执行多条命令

    最近在搞jenkins pipeline的部署工作,而在对.net core进行部署时不希望安装dotnet sdk,为了移植性更好,打算直接使用aspnetcore的docker镜像,通过docker去run它,而在这个时间出现了一个问题 docker run aspnetcore:2.0之后如果希望同时执行多个sh命令出现了问题,还非要写个脚本文件,这是大叔不喜欢的! docker run aspnetcore:2.0 ls && ls 结果是第一个ls显示的是容器里的内容,而第二个l

  • java Runtime如何执行多条命令

    目录 java Runtime如何执行多条命令 Runtime.getRuntime().exec 执行多条 java Runtime如何执行多条命令 使用 && 分隔命令 public static void cmd() { String ls = " cd /home/ && dir "; Process process = null; String cmd = getOsCmd()+ ls; try { process = Runtime.getR

  • Go语言执行系统命令行命令的方法

    本文实例讲述了Go语言执行系统命令行命令的方法.分享给大家供大家参考.具体如下: 执行Go代码时可以附加参数,包括要执行的命令和给命令的参数 复制代码 代码如下: package main import (   "os"   "os/exec"   "fmt"   "flag"   "strings" ) func main() {   command := flag.String("cmd&qu

  • C++/Php/Python 语言执行shell命令的方法(推荐)

    编程中经常需要在程序中使用shell命令来简化程序,这里记录一下. 1. C++ 执行shell命令 #include <iostream> #include <string> #include <stdio.h> int exec_cmd(std::string cmd, std::string &res){ if (cmd.size() == 0){ //cmd is empty return -1; } char buffer[1024] = {0}; s

  • python等待10秒执行下一命令的方法

    python等待10秒执行下一命令的方法: 首先导入时间(time)模块: 然后在需要等待执行的命令前调用sleep()方法,并在方法的括号里将等待时间设置为10秒即可. import time print '10秒前' time.sleep(10) print '10秒后' 先打印10秒前,等待10秒后,打印10秒后. 内容扩展: 不用多线程的话,可以用信号来解决这个问题. # -*- coding: utf-8 -*- import signal class InputTimeoutErro

  • 在Windows与Linux下禁止被ping的设置方法[推荐]

    LINUX下禁止ping命令的使用 以root进入Linux系统,然后编辑文件icmp_echo_ignore_allvi /proc/sys/net/ipv4/icmp_echo_ignore_all将其值改为1后为禁止PING将其值改为0后为解除禁止PING 直接修改会提示错误: WARNING: The file has been changed since reading it!!!Do you really want to write to it (y/n)?y"icmp_echo_i

  • sql 随机抽取几条数据的方法 推荐

    传说用这个语句管用:select top 5 * from tablename order by newid() 我放到sql的查询分析器里去执行果然管用,随机抽取5条信息,不停的换,结果我应用到程序里的时候就不管用了,总是那几条,于是对这个东西进行了一个研究得出另一种方法: newid() 可以产生如:"49869293-8891-4B31-B88E-A584D9621490" 这样的数据结果,而且每一行产生的都不同,这样的话,我们就可以在查询的时候给结果集里加上这么一个列,比如:

随机推荐