shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言
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
(输出略)