代码:
elsels # echo Enter s to list file sizes echo otherwise all file information is listed echo -n "please enter option:" set option=$< if ($option=="s") then ls -s else ls -l endif echo Good-bey
|
(结果略)
21,jobs
格式:
jobs [-l]
此命令列出所有活动的任务,如果带-l选项,将列出进程号,以及正常的信息.
22,kill
格式:
kill [-signal] %job\pid...
kill -l
此命令用于终止进程或者任务,如果带-signal选项,应该指定要发送的信号,默认发送
的信号是SIGTERM,如果带有-l选项,则列出信号名,对于带-l选项提供的信号数,将
列出与其相关的信号名.
23,logout
此命令用于终止注册shell,如果设置了ignoreeof,它将非常有用.
24,nice
格式:
nice [+ number][command]
此命令设置shell调整优先为number,如果没有设置number,调整优先设置为4,带有
指定的command,nice适当的优先运行command,number值越大,进程获得的CPU的时间
就越少.
25,nohup
格式:
nohup [command]
如果不带command参数,nohup指示shell忽略任何停机信号,如果带command参数,将
执行此命令并忽略执行中的任何停机信号.
26,notify
格式:notify [%job...]
Linux执行命令后,如果有后台任务在执行,系统将通知到目前为止已经完成的后台
任务,该系统不会中断如编辑这样的操作来通知用户关于完成的任务,当某任务完成
时,如果想马上知道,无论系统在作什么,可以使用notify命令指令系统通知用户,它的
参数作为任务号,当任务完成时,系统将中断当前命令并通知用户任务已经完成,如:
%notify %2
当2号任务完成时,告诉系统通知用户.
27,onintr
格式 onintr [-|label]
此命令控制shell在中断时的动作,不带任何参数,将回复shell中断默认的动作,将
终止shell脚本或返回输入级的终止符,如果带-参数,则忽略全部的中断,当接受中断
或当子进程终止时,带label的命令将使shell执行goto标号.
28.popd
格式 popd [-p][-l][-n|-v][+n]
此命令从目录列表中删除一个目录,不带参数的命令从列表中删除顶层目录,+n删除
从左起的第n层的目录.然后popd显示最终的目录列表.pushdsilent shell变量可以
设置为支持此特性,-p选项可以重写pushdsilent.
29.printenv
格式:
printenv [name]
此命令显示环境变量的名和值,如果带name参数,仅仅显示环境变量name的值.
30.pushd
格式:
pushd [-p][-l][-n|-v][name|+n]
此命令把目录添加到存储的目录列表中,然后显示目录列表,如不带参数,除非目录
为空,pushd交换顶层的两个目录,并返回0.
+n旋转列表以便使第n个目录(从左起)列与顶端,但是,如果设置了dextract,pushd +n
将展开第n个目录,把它压入堆栈顶层.
-n旋转堆栈以便第n个目录(从右起)列于顶端,dir把dir添加到顶端的目录列表,是她
成为新的当前目录.如果设置了pushtohome,不带参数的pushd命令执行pushd ~的
功能,像cd的功能一样,如果dunique被设置,pushd在压入堆栈之前从堆栈中删除任何
的name历程,可以设置pushdsilent shell变量来取消目录列表的显示,然后可以使用
-p选项重写pushdsilent.
31,repeat
格式:
repeat count command
此命令重复执行command指定的次数count.
32,set
格式:
set
set name ...
set name = value ...
set name = (wordlist)...
set name[index] = word ...
set -r
set -r name ...
set -r name = value ...
set -r name = (wordlist) ...
不带任何参数的set命令将显示全部的shell变量值,包含许多单词的变量作为放在
括号中的词列出,带name参数的set命令定义一个变量并为它赋值null串,带有name
和=符号分隔的值,set定义变量并给它赋值,要把wordlist作为值赋值给name变量,
把列表中的词作为要赋的值放在括号中,为了将数值赋值给数组元素,,使用方括号
[]指定元素的index,但是该元素必须已经存在.
-r选项常用于引用只读变量,仅仅带-r选项的set命令将列出只读变量,与变量名一起
使用,set将使此变量设置为只读,与赋值的变量一起使用,将初始化该变量,并使该
变量成为不能被修改的只读变量.
在TCSH中,用户必须在使用变量之前首先声明它,使用加变量名的set命令声明变量.
变量名可以是任何字母字符包括下划线_,也可以含有数字,但是变量名不能以数字为
首字符!
33,setenv
格式:
setenv [name[value]]
setenv常用于定义有特定值的环境变量.如没有带value选项,setenv设置name变量
为null串,如果没有带任何参数,将显示全部环境变量的名称和值.
TCSH有两种类型的变量:局部变量和环境变量.局域变量是在shell内部声明的;环境
变量是全局域的变量.使用setenv可以定义环境变量,使用setenv命令,变量名,以及
被赋值的值,就可给环境变量赋值.其中,没有赋值运算符,如:
%setenv greeting hello
greeting环境变量被赋值为hello
无论何时调用shell脚本,都将产生自己的shell,如果shell脚本被另外一个shell脚本
执行,它将使自己的shell从第一脚本的shell中分离.现在有两个shell,属于第一个
脚本的父shell和当执行第二个脚本是产生的子shell.在其他的shell内部执行脚本
时,这个shell是第一个脚本的子shell,原来的脚本的shell是它的父shell.
每个shell都拥有自己的变量,子shell不能引用父shell中的局域变量,但是能引用
环境变量.子shell可以引用父shell中声明的任何环境变量.
34,shift
格式:
shift [variable]
没有参数的shift命令向左移动argv数值,即argv[1]的数值被argv[2]所代替,如果
argv没有被设置或者数值少于一个词时将发声错误.带有其数值为列表或数组的
variable,该命令将列表和数组的数值向左移动.
35,source
格式:
source [-h] name [argument...]
source读出并执行以name命名的命令,通常是shell脚本(不能把这些命令放在历史
列表中).把任何参数输入argv中.用-h选项,命令被放入历史列表但是不立即执行.
36.stop
格式:
stop %job\ job...
stop命令停止指定的任务或在后台执行的进程.也可以用一个数字或字符串引用一个
任务,如果不存在默认的任务,那么仅仅stop不能停止当前的任务.
37,switch
格式;
代码:
switch (test-string) case pattern: commands breaksw case pattern: commands breaksw default: commands breaksw endsw
|
switch结构在几个可能的选项中进行选择.此结构与BASH中的case结构非常类似
通过把字符串与几个可能的模式进行选择,每个可能的模式都与一系列命令相关
联,如果没有相匹配的项,则执行相关的命令,.switch结构以关键词switch和放在
圆括号中的test-string开始,字符串常由变量求值导出,然后是一系列的模式,每个
模式pattern前是关键词case,以冒号:结束,冒号后列出与选择有关的commands,以
breaksw终止command,在所有被列出的模式之后,关键词endsw结束switch结构,注意,
每个测试表达式的命令组的最后一个命令是breaksw,每个测试表达式被逐一测试,
直到找到相匹配的内容,如果没有找到相匹配的项,则执行默认项default.用关键词
default表示默认选择,default项是可选的.但是它有助于通知用户没有匹配的测试
字符串.举例:
代码:
lschoice # echo s.List sizes echo l.List files infomation echo c.List C files echo -n "Please enter choice:" set choice=$< switch ($choice) case s: ls -s breaksw case l: ls -l breaksw case c: ls *.c breaksw default: echo Invalid Option breaksw endsw
|
(输出略)
38,time
格式:
time [command]
如果没有参数,此命令显示当前shell的时间累计,用一条命令作为参数,它执行命令
并显示时间累计.
39,umask
格式:
umask [value]
此命令指定用户文件建立掩码,掩码用八进制表示.
40,unalias
格式:
unalias pattern
此命令删除其名称与pattern匹配的所有别名.
41,unset
格式:unset pattern
此命令取消定义shell变量,名称可能是匹配了几个变量的pattern(尽量避免用
unset *,因为它将取消所有的变量)
42,unsetenv
格式:
unsetenv pattern
此命令取消定义环境变量,名称可能是匹配几个变量的pattern,也尽量避免用
unsetenv *,因为它将删除所有的环境变量.
43,wait
此命令指示shell等待全部的后台任务的完成,在一个交互的shell环境中,可中断
一个wait操作,并显示剩余的任务.
44,where
格式:where command
此命令报告所有已知的命令历程,包括别名,内建和可执行的路径.
45,which
格式:
which command
此命令显示shell要执行的指定的任务.
46,while
格式:
while(expression)
command
end
此循环重复执行命令,以关键词while开始,接着是圆括号括起来的表达式expression
以end结束循环.
while循环很容易与switch结构结合,构成菜单的驱动程序.举例:
代码:
lschoicesw # set again=yes while ($again==yes) echo "1.List sizes" echo "2.List files information" echo "3.List C files" echo "4.Quit" echo -n "Please enter choice:" set choice=$< switch ($choice) case 1: ls -s breaksw case 2: ls -l breaksw case 3: ls *.c breaksw case 4: set again=no echo good-bey breaksw default: echo Invalid Option endsw
|