~/.cshdirs,在启动时注册shell将对dirs -L求值,如果设置了savedirs,退出前使用
dirs -S,由于在~/.cshdirs之前,仅仅~/.tcshrc是正常来源,dirsfile应该以~/.tcshrc
设置而不是以~/.login设置.
11,echo
格式:echo [-n] word/string
此命令把每个单词或字符串写入shell的标准输出.可设置echostyle shell变量来仿真
选项以及BSD的换码序列或者echo的System V 版本.
12,eval
格式:eval argument...
此命令把参数作为shell的输入,执行当前shell的上下文中的结果命令,由于分析发声
在替换前,所以该命令通常用于执行命令或变量替代所产生的命令.
13,exec
格式:exec command
此命令代替当前的shell执行指定的命令,并退出终端.
14,exit
格式: exit [expression]
shell可以带指定的表达式的值退出,如果没有包含表达式,也可带状态变量值退出.
15,fg
格式:fg [%job...]
把指定的任务带到前台,如果任务在终止状态,在带到前台的同时使他运行.
job参数是使用任务号或者下列字符串之一的任务引用:' % + -
16,foreach
格式:foreach variable(list of values)
commands
end
foreach结构被设置为顺序引用数值列表,它类似BASH shell的for in 结构.foreach
结构产生两个操作数:一个变量和一组包含在()中的数值列表.将列表中的值赋值到
结构中的变量中.循环体的结尾由语句end构成.下例中脚本list输出由项目和foreach
循环读取每一项当前的日期构成的一行信息,列表中的每一项被连续赋值到变量object
list
#
set tdate=`date +%D`
foreach object(milk cookies apples cheese)
echo $object $tdate
end
%tcsh list
milk 04/26/03
cookies 04/26/03
apples 04/26/03
cheese 04/26/03
使用foreach循环有助于管理文件,可以模式中的shell特定字符来产生用作数值列表
的文件名列表,然后所产生的文件名列表就成为foreach结构引用的列表.如果在列表
中不带任何变量,可以使用命令行参数实现循环.
list
#set tdate=`date +D%`
foreach object($argv[*])
echo "$object $tdate"
end
%tcsh list a b c
a 04/26/03
b 04/26/03
c 04/26/03
使用argv[*]特殊参数变量,可以直接引用命令行参数.下例中,当调用shell脚本
cbackuparg时,在命令行下输入C程序文件的列表,在foreach循环中,argv[*]引用
命令行中的所有参数,将按顺序把各个参数赋值给变量backfile,变量argnum用于
引用每个参数.显示参数和backfile的值来说明它们两个是相同的.
代码:
cbackuparg # @ argnum=1 foreach backfile ($argv[*]) cp $backfile sourcebak/$backfile echo "$backfile $argv[$argnum]" @ argnum=$argnum+1 end
main.c main.c
lib.c lib.c
io.c io.c
17,history
格式:
history [-hr][n]
history -S|-L|M [filename]
history -c
如果history没有任何参数,将显示开行号的历史命令列表.用作参数的号码将列出
行的最后号码.如果没有任何选项参数,她将用作历史文件名;否则,将使用hisfile
变量值.
用-h选项,将以注释的形式显示不带行号的历史文件列表
用-r选项,将反向显示,以最近的列表开始
用-c选项,则清除历史列表
如果用-S选项,可以把历史列表存入文件,如果savehist shell变量的第一个单词
被设置为数值,历史文件将被保存为最大的行数,如果第二单词为'merge',历史列表
将被合并到当前的历史文件中,而不替代历史列表,时间图章排序历史列表.
如果用-L选项,shell将从存储的历史列表文件中读取历史列表并把她追加到当前
历史列表中.
如果用-M选项,将从历史文件读取历史列表信息,但用当前历史列表信息合并,排序
历史列表.
如果没有用这些选项给出文件名,那么,就使用赋值到histfile shell变量的文件
名,如果没有设置histfile,就使用~/.history.
18,hup
格式:
hup [command]
如果带有括起来的command参数,hup运行command,根据停机信号退出.当shell退出时,
hup安排shell发出停机信号.注意:命令也许设置自己的停机响应,重写hup,如果没有
参数(只有在shell脚本中才允许),hup使shell根据脚本的余项的停机信号退出.
19,if-then
格式:
if (expression) then
command
endif
if-then结构把条件放入几个linux命令,该条件是expression,如果expression得出
非零的数值,那么expression为真,执行if结构内的命令,如果expression得出零值
那么expression为假,就不执行if结构内的命令.
if-then结构以if关键词开始,expression表达式用()括起来,关键词then后可以跟
任意数量的linux命令,以关键词endif结束if命令.注意:在TCSH中,if (expressiong)
和then必须在同一行!
举例:
代码:
ifls # echo -n "Please enter option:" set option=$< if ($option=="s") then echo List files by size ls -s endif
Please enter option: S
List files by size
total 2
1 monday 2 today
%
20,if-then-else
格式:
if (expressiong) then
command
else
command
endif
用户需要经常需要根据expression是真还是假来进行选择.关键词else允许if结构
在两者之间选择,如果expression为真,那么执行第一个command,否则,执行第二个
就是else后面的command.
举例:
代码:
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命令指令系统通知用户,它的
参数作为任务号,当任务完成时,系统将中断当前命令并通知用户任务已经完成,如:
