linux终端运行cpp,Linux下终端多命令执行

我们可能会遇到这样的情况:有多个程序需要在同一个终端由一条

一、多命令执行之 ;

要在同一终端运行多个程序,程序是否运行与其他程序的运行结果无关,只需要程序依次执行,前面的程序执行完之后方才执行后面的程序。对于这种情况,我们最好采用多命令执行操作符“;”。命令与命令之间用分号“;”隔开,这样,分号前面的程序执行完毕之后就会紧接着执行分号后面的程序,直到所有程序执行完毕。我们来看一下下面这个实例:

trevor@trevor-PC:~/linux/linux100$ ls

06

trevor@trevor-PC:~/linux/linux100$ mkdir dir;ls -l;rm dir -r;touch file;ls -l

总用量 8

drwxr-xr-x 3 trevor trevor 4096 2012-01-09 17:27 06

drwxr-xr-x 2 trevor trevor 4096 2012-02-27 21:13 dir

总用量 4

drwxr-xr-x 3 trevor trevor 4096 2012-01-09 17:27 06

-rw-r--r-- 1 trevor trevor 0 2012-02-27 21:13 file

trevor@trevor-PC:~/linux/linux100$

由实例可知,当前目录开始只有一个名为 06 的目录,紧接着一行五个命令先后执行,首先创建 dir 目录,然后执行“ls -l”命令查看当前目录下的文件,接着执行 rm 命令删除 dir 目录,再执行 touch 命令创建一个 file 空文件,最后再次执行“ls -l”查看当前目录下的文件详情。

二、多命令执行之 &&

倘若有多个命令,我们希望只有在前面命令运行成功的情况下方才运行后面的命令,则需要用到多命令操作符“&&”。命令与命令之间用分隔符“&&”隔开,这样,如果前面的命令执行正确,则紧接着执行后面的程序;如果前面的程序执行失败了,则后面的程序将不再被执行。可以用到多命令操作符“&&”的情形很多,比如我们想使用 touch 命令更新 file 文件的修改时间,但是不确定 file 文件是否存在,不想因为 file 不存在而创建一个空文件,故可以使用 ls 命令确保 file 文件已经存在的前提下,再执行 touch 命令更新它的修改时间。见如下实例:

trevor@trevor-PC:~/linux/linux100$ ls -l

总用量 4

drwxr-xr-x 3 trevor trevor 4096 2012-01-09 17:27 06

-rw-r--r-- 1 trevor trevor 0 2012-02-27 21:13 file

trevor@trevor-PC:~/linux/linux100$ ls file && touch file

file

trevor@trevor-PC:~/linux/linux100$ ls -l

总用量 4

drwxr-xr-x 3 trevor trevor 4096 2012-01-09 17:27 06

-rw-r--r-- 1 trevor trevor 0 2012-02-27 22:03 file

trevor@trevor-PC:~/linux/linux100$ rm file

trevor@trevor-PC:~/linux/linux100$ ls file && touch file

ls: 无法访问file: 没有那个文件或目录

trevor@trevor-PC:~/linux/linux100$ ls -l

总用量 4

drwxr-xr-x 3 trevor trevor 4096 2012-01-09 17:27 06

trevor@trevor-PC:~/linux/linux100$

上面实例中,开始的时候存在 file 文件,且得知它的修改时间为 2012-02-27 21:13 ,执行多命令“ls file && touch file”之后,它的修改时间更新为 2012-02-27 22:03 ,随后删除 file 文件,再次执行多命令“ls file && touch file”,因为执行“ls file”命令的时候没找到文件而出错,故不再执行后面的 touch 命令,后面的 ls 也验证了我们的结论。

三、多命令执行之 ||

倘若有多个命令,我们希望只有在前面命令运行失败的情况下方才运行后面的命令,则需要用到多命令操作符“||”。命令与命令之间用分隔符“||”隔开,如果前面的命令执行失败,则紧接着执行后面的程序;如果前面的程序执行成功了,则后面的程序将不再被执行。这跟多命令执行符“&&”的功能正好相反,用到它的的情形也很多,比如我们想创建一个 dir 目录,但不确定该目录是否已经存在,在所以我们考虑在创建这个目录之前先检测一下该目录是否已经存在。见如下实例:

trevor@trevor-PC:~/linux/linux100$ ls

06 dir

trevor@trevor-PC:~/linux/linux100$ mkdir dir

mkdir: 无法创建目录"dir": 文件已存在

trevor@trevor-PC:~/linux/linux100$ ls dir || mkdir dir

trevor@trevor-PC:~/linux/linux100$ rm dir/ -r

trevor@trevor-PC:~/linux/linux100$ ls

06

trevor@trevor-PC:~/linux/linux100$ ls dir || mkdir dir

ls: 无法访问dir: 没有那个文件或目录

trevor@trevor-PC:~/linux/linux100$ ls

06 dir

trevor@trevor-PC:~/linux/linux100$

在上面实例中,当前目录下已经存在 dir 目录,这时候创建 dir 命令会提示错误;随后执行多命令“ls dir || mkdir dir”,没有再提示错误,这是因为“ls dir”执行成功,则后面的命令“mkdir dir”命令将不再执行,故没有提示“文件已经存在的错误”;接着我们删掉 dir 目录,再次执行多命令“ls dir || mkdir dir”,这时候提示“无法访问dir”错误,说明“ls dir”命令执行失败;最后执行 ls 命令,我们看到 dir 目录又出现了,这说明“mdkir dir”命令被执行了,这也就很好地验证了我们的结论。

除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值