分页: 1 / 1

OpenBSD如何在命令行上一次执行多个命令

发表于 : 2011-03-16 7:05
leo
以前只知道有个 &&, shell现学现卖:

在shell里可以在命令行上一次执行多个命令,方法是将多个命令用分号 ”;“隔开,系统将依次执行每条命令。例如:

代码: 全选

# find / -name sshd_config ; pwd
相当于系统将依次执行

代码: 全选

# find / -name sshd_config

代码: 全选

# pwd

如果将分号更换为 & ,则系统将在后台执行 & 前面的命令,也就是说shell不用等前面的命令完成就可以执行下一个一个命令。
例如:

代码: 全选

# tar zcf src.tar.gz /usr/src & touch gobsd
shell将在后台打包压缩 /usr/src 这个目录,并不用等前面的打包压缩完成立即开始创建文件gobsd。

发表于 : 2011-03-16 8:38
chenjun
学习了,我输入多个命令时用的都是&&,例如:

代码: 全选

# find / -name sshd_config && pwd
又学了一招:D

发表于 : 2011-03-16 11:04
wkx9dragon
一个&表示后台运行,两个&&表示,前一个执行成功,才执行下一个命令。初略的说,&和;相似,| 和&&相似。如果想每个命令独立运行,并且互不相关,用;最好了,如果讨厌一堆运行输出,用一个&.
如果想命令一个接一个的执行,并且只有当前一个命令执行成功,后一个才执行,用两个&&,但是如果后一个命令需要前一个的结果输出的话,用|(管道),或<<,>>,[不止一个输出作为后一个的参数的话,还要xargs配合]。

发表于 : 2011-03-16 11:24
leo
总结的如此精辟,佩服s。

回复: OpenBSD如何在命令行上一次执行多个命令

发表于 : 2011-04-03 10:59
chang
嘿嘿,用到,学习了