Unix shell编程命令

cuclife.com - 09-08

shell 不但是 Unix 的用户交互界面,还是一门程序设计语言,系统注册进入时就会执行一个shell命令文件 .profile ,

下面对shell中的常用命令作简单介绍:
$n shell 程序命令行中的第n 个参数,n为0-9,当n 为0时表示命令名
$# 命令行中参数的个数
$$ 本shell 命令的进程号
$! 最后一个后台进程的代号
$* 所有命令行参数
$@ 与$*相似,但其值不同
$HOME 注册时进入的目录
$PATH 命令的搜索目录
$PS1 系统第一个提示符,一般为$
$PS2 系统第二个提示符,一般为>
shift [n] 将命令行参数往左移一位,但$0不变
变量名=字符串 将字符串赋予变量名,以后可用$变量名引用该变量
export 变量名表 将变量名表所列变量传递给子进程
read 变量名表 从标准输入读字符串,传给指定变量
echo 变量名表 将变量名表指定的变量显示到标准输出
set 显示设置变量
env 显示目前所有变量
if 条件执行,语法是: if 条件
then 指令
fi
case 分支执行,语法是: case 字符串变量 in
值1) 指令…
值2) 指令…

esac
while 条件为真时循环,语法是:
while 条件
do
指令…
done
until 条件为假时循环,语法是:
until 条件
do
指令…
done
for 变量在表中时循环,语法是:
for 变量名 in 字组表
do
指令…
done
break 从循环中退出,语法:
break n
n 表示跳出循环的层数
continue 继续循环,语法:
continue n
n 表示退到包含continue 语句的第n 层继续循环
exit 退出shell
func shell内部可定义函数,语法: func 函数名()
{
指令…
}
expr 将其后的串解释为表达式并计算其值,运算符前后需有空格
trap 捕获信号,语法 trap n ,捕获信号 n (信号说明参见kill)
test 条件测试,语法 test [选项] 参数
选项 -f 文件 若文件存在且可读则真
-w 文件 若文件存在且可写则真
-x 文件 若文件存在且可执行则真
-f 文件 若文件存在且为普通文件则真
-d 文件 若文件存在且为目录文件则真
-p 文件 若文件存在且为fifo文件则真
-s 文件 若文件存在且不空则真
-z 串 若串长度为0则真
-n 串 若串长度不为0则真
串 若串不是空串则真
串1=串2 若串1等于串2则真
串1!=串2 若串1不等于串2则真
n1 -eq n2 若n1与n2数值相当则真
n1 -ne n2 若n1与n2数值不相当则真
n1 -lt n2 若n1小于n2则真
n1 -le n2 若n1小于等于n2则真
n1 -gt n2 若n1大于n2则真
n1 -ge n2 若n1大于等于n2则真
可用 与 -a 或 -o 非 ! 将条件表达式连接起来