[问题]如何同时执行多个命令

sh/bash/dash/ksh/zsh等Shell脚本
头像
titainium
帖子: 689
注册时间: 2006-12-02 12:25
送出感谢: 0
接收感谢: 0

[问题]如何同时执行多个命令

#1

帖子 titainium » 2007-04-07 20:34

最近一直在命令行下混迹,碰到了一个不大不小的问题,只好到这里来向各位大大求助了,请问有什么办法可以同时执行多个命令,比如说我要创建一个文件夹,然后进入这个目录,然后在目录下用VI指令创建一个文件,命令分开来写我知道啦,可是怎么连起来呢?貌似用管道的方式会出错啦。
Titainium
头像
jupengfei
帖子: 1258
注册时间: 2006-10-31 11:02
来自: Beijing
送出感谢: 0
接收感谢: 0

#2

帖子 jupengfei » 2007-04-08 19:00

&&
mkdir dir && cd dir && vi file
图片
我也喜欢蓝妹妹......
头像
yhlfh
帖子: 579
注册时间: 2006-09-02 20:42
来自: 东海明珠
送出感谢: 1 次
接收感谢: 2 次

#3

帖子 yhlfh » 2007-04-08 21:25

这个叫连续执行,不是同时执行
Life is like a box of chocolates, you never know what you're going to get.
头像
titainium
帖子: 689
注册时间: 2006-12-02 12:25
送出感谢: 0
接收感谢: 0

#4

帖子 titainium » 2007-04-09 11:04

谢了!晚上回去试试。
Titainium
hujy
帖子: 218
注册时间: 2006-05-25 10:13
来自: 明州
送出感谢: 0
接收感谢: 0

#5

帖子 hujy » 2007-04-09 12:35

或者
mkdir dir ; cd dir ; vi file
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#6

帖子 eexpress » 2007-04-09 14:13

&&可不行。带了$?的结果判断的。
● 鸣学
头像
skyx
论坛版主
帖子: 9203
注册时间: 2006-12-23 13:46
来自: Azores Islands
送出感谢: 0
接收感谢: 1 次
联系:

#7

帖子 skyx » 2007-04-09 14:21

问下ee:

如果脚本中:


所有命令行后面加个&


是不是同时执行?还是只是执行完第一行再去执行第二行?
no security measure is worth anything if an attacker has physical access to the machine
头像
skyx
论坛版主
帖子: 9203
注册时间: 2006-12-23 13:46
来自: Azores Islands
送出感谢: 0
接收感谢: 1 次
联系:

#8

帖子 skyx » 2007-04-09 14:38

雕刚才说什么来着?无错才执行下一步?哪是这样的啊,你去看下debian 手册,看是怎么写的


命令后面如果带&,在一个终端中的确可以执行多个命令。

只是我在脚本中还没试过
no security measure is worth anything if an attacker has physical access to the machine
头像
skyx
论坛版主
帖子: 9203
注册时间: 2006-12-23 13:46
来自: Azores Islands
送出感谢: 0
接收感谢: 1 次
联系:

#9

帖子 skyx » 2007-04-09 14:39

刚才发生了灵异事件,一个帖子不见了
no security measure is worth anything if an attacker has physical access to the machine
头像
stlxv
论坛版主
帖子: 8273
注册时间: 2006-05-03 0:39
来自: المريخ
送出感谢: 0
接收感谢: 1 次

#10

帖子 stlxv » 2007-04-09 17:59

代码: 全选

command1 &
command2 &
command3 &
...
PHP是最好的语言!不服来战!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#11

帖子 eexpress » 2007-04-09 18:01

&是后台执行
&&是带条件判断的执行。
只有 ; 才是连续执行。
● 鸣学
头像
jupengfei
帖子: 1258
注册时间: 2006-10-31 11:02
来自: Beijing
送出感谢: 0
接收感谢: 0

#12

帖子 jupengfei » 2007-04-09 19:51

今天又学到了东西 :P
图片
我也喜欢蓝妹妹......
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

Re: [问题]如何同时执行多个命令

#13

帖子 BigSnake.NET » 2007-04-09 19:53

titainium 写了:最近一直在命令行下混迹,碰到了一个不大不小的问题,只好到这里来向各位大大求助了,请问有什么办法可以同时执行多个命令,比如说我要创建一个文件夹,然后进入这个目录,然后在目录下用VI指令创建一个文件,命令分开来写我知道啦,可是怎么连起来呢?貌似用管道的方式会出错啦。
同时执行就失去顺序性了
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
DRIFT
帖子: 177
注册时间: 2007-01-25 13:04
送出感谢: 0
接收感谢: 0

#14

帖子 DRIFT » 2007-04-09 20:53

yhlfh 写了:这个叫连续执行,不是同时执行
在这里也能见到你. :lol: :lol: :lol: :lol: :lol: :lol:

我在LinuxFans见过你.
雕啸长空
帖子: 1897
注册时间: 2006-09-12 14:09
送出感谢: 0
接收感谢: 0

#15

帖子 雕啸长空 » 2007-04-09 21:05

command &

command 在子 shell 的 background 运行。后台任务让多成程序能够运行在一个 shell 里面。
------------------------------------------------------------------
command1 | command2

command1 的标准输出被直接输入到 command2 的标准输入。两个命令都可能并行地运行。这个被称作pipeline。
------------------------------------------------------------------
command1 ; command2

command1command2 被有序的执行。
------------------------------------------------------------------
command1 && command2

command1 如果执行成功的话那么再执行 command2。只有当 command1并且command2 都运行成功的话上面的命令序列才会成功返回。
------------------------------------------------------------------
command1 || command2

command1 被执行以后,如果不成功的话,command2 也会被执行。当 command1 或者command2 有一个执行成功的话,上面的序列就会返回真值。
------------------------------------------------------------------
Fair winds and following seas !
回复

回到 “Shell脚本”