找回密码
 注册
搜索
查看: 2692|回复: 0

[原创]Linux Shell中的独立和成组命令  关闭 [复制链接]

水滴
0
技术贴
0
休闲帖
0
粮草
0
军饷
734
最后登录
2009-6-1
华币
0
注册时间
2007-3-23
发表于 2007-3-23 18:09:18 |显示全部楼层
本文适合于bash、tcsh和zsh。 1、NEWLINE和“;”:分离命令 换行符NEWLINE是一个独特的命令,因为所有的命令处理都是从它开始的。任何一个命令行末尾都要按回车键。 分号“;”也是一个命令分离器。不过它不能开始执行命令,也不会改变任何函数的状态。在命令行上用分号分开每一个命令,就可以按顺序去执行这些命令了。在这命令行的末尾按下回车键,命令就会被执行:
  1. $ x ; y; z
复制代码
如果x、y和z是命令,上面的命令行就等同于下面的3个命令;不同之处在于,shell会在每下面每个命令后(x、y和z)都给出一个提示,而上面的命令行只有在z完成后才给出一个提示:
  1. $ x
  2. $ y
  3. $ z
复制代码
2、“”:继续执行命令 当用户输入一个很长的命令,并且光标到了屏幕或窗口最右端时,可以用反斜杠符号()在下一行继续用户的命令。
  1. $ c
  2. m
  3. d
复制代码
相当于输入一个完整的命令cmd。 3、“|”和“&”:分离命令并执行其他任务。 命令分离符有管道符号(|)和后台任务符号(&)。这两个命令分离符不会开始执行一个命令,但是它们能改变函数的一些方面。管道符号可以改变标准输入的代码,也可以改变标准输出的目的地址。后台任务符通知shell在后台执行任务,所以用户立刻就能回到shell提示符,继续执行其他任务。 例如,一个包含3个任务的作业:
  1. $ x | y | z
复制代码
shell把任务x的输出定向到任务y,并把y的输出定向给z。因为shell在前台运行整个作业,所以z完成前,不会有提示符返回。任务x不完成,任务y不会完成;任务y不完成,任务z也不会完成。 下一个命令是在后台执行任务a和b,在前台执行任务c:
  1. a & b & c
  2. [1] 14271
  3. [2] 14272
复制代码
shell显示出每个后台运行进程的作业号(即上面的“[1]”和“[2]”)和PID(即上面的“14271”和“14272”)。任务c一完成用户就会回到提示符。 在给出新任务的提示符($)前,shell会检查后台作业是否都已完成。对每个已经完成的作业,shell将显示出它的作业号、单词Done和所调用该作业的命令行,然后shell会显示出提示符。列举作业号的时候,最前的作业后会跟一个减号(-),最后的作业号后面会跟一个加号(+)。其他作业跟一个空格。最后一个命令运行后,shell在显示提示符前会显示下列内容:
  1. [1]- Done a
  2. [2]+ Done b
复制代码
下面的命令在后台执行全部三个任务,用户可以立刻回到shell提示符:
  1. $ a & b & c &
  2. [1] 14290
  3. [2] 14291
  4. [3] 14293
复制代码
用户可以用管道符(|)来传送一个任务的输出到下一个任务,后台任务符(&)号会把这个过程作为后台作业运行。当然,提示符也能立刻返回。shell把管道连接的命令看成一个单一的作业,不管管道连接了多少任务,也不管任务有多复杂。tcsh会显示3个进程(但是都属于一个作业)。bash和zsh只显示一个进程。 4、“()”:组合命令 可以用括号组合命令。对每一个组,shell创建一个称为子shell(subshell)的自身副本来处理每个命令组,并创建一个新进程处理每个命令。每个子shell(作业)都有自己的环境,也就是说有自己的一套已赋值的变量,这些变量可能和其他的子shell的环境不同。 下面的命令行在后台依次执行a和b,同时在后台执行c,shell提示符会立刻返回:
  1. $ (a;b) & c &
  2. 15007
复制代码
这个例子和前面提到的a & b & c & 有所不同,因为a和b是依次而非并发执行的。 与之类似,下面的命令行在后台依次执行a和b,同时,在后台也依次执行c和d。前一个子shell运行a和b,后一个子shell运行c和d,二者是并发进行的,并且shell提示符会立刻返回:
  1. $ (a;b) & (c;d) &
  2. 15020
  3. 15021
  4. $
复制代码
您需要登录后才可以回帖 登录 | 注册

bottom

Archiver|华军软件园论坛 ( 京ICP证050203 )

GMT+8, 2012-5-17 09:32 , Processed in 0.057972 second(s), 8 queries .

Powered by Discuz! X2 Licensed

© 2001-2011 YEEI Design. Comsenz Inc.

回顶部