变量:是shell传递数据的一种方法
shell 有两种变量: 临时变量和永久变量
临时变量是shell程序内部定义的, 对其他shell程序不可见
包括:用户自定义变量和位置变量。
永久变量是环境变量, 其值不随shell脚本的执行的结束而消失
位置变量和特殊变量
ls -l file1 file2 file3
$0 这个程序的文件名字 ls -l
$n 这个程序的第n个参数
$* 这个程序的所有参数 "" 会是整体的
$# 这个程序的参数个数 "" 单个出先可用echo $#查看
$$ 这个程序的PID
$! 执行上一个后台命令的PID
$? 执行上一个命令的返回值
shell的输入输出
read 从键盘读入数据, 赋给变量
echo 输出到标准输出上
shell 变量的算数运算:
expr 对整数变量计算
流控制语句
until 条件
do
命令
done
while 条件
do
命令
done
case 变量 in
字符串1) 命令列表1
;;
字符串2) 命令列表2
;;
*)
;;
esac
for 变量 in 列表
do
命令列表
done
for ((; ; ))
do
命令列表
done
if 条件1 ;then
命令1
elif 条件2; then
命令2
else
命令3
fi
done
多个条件的联合
-a : 逻辑与, 仅当两个条件都成立时, 才为真
-o :逻辑或, 两个条件都为假是, 才为假
变量测试语句
test 测试条件
测试范围: 整数、 字符串 、文件
整数测试:
test int1 -eq int2 equal
test int1 -ge int2 greatr equal
test int1 -gt int2 greater than
test int1 -le int2 less equal
test int1 -lt int2 less than
test int1 -ne int2 not equal
文件测试:
test -d file 指定的文件是否是目录
test -f file 指定的文件是否常规文件
test -x file 指定的文件是否可执行的
test -r file 指定的文件是否可读的
test -w file 指定的文件是否可写的
test -a file 制定的文件是否存在
test -s file 指定的文件是否非0
可用 [ ] 替换test
注意: 括号两边是有空格的
sh -x script
这将执行该脚本并显示所有变量的值
sh -n script
不执行脚本只是检查语法的模式, 将返回所有的语法错
shift 指令
参数左移, 没执行一次, 参数顺序左移一个位置, $#的值减1
shift 2 一次左移2个参数
阅读(1089) | 评论(0) | 转发(0) |