1》系统默认变量
1. 一共有几个参数 : $#
2. 该运行程序的名字是什么 : $0
3. 所有参数的值 : $@ 或 $*
4. 第n个参数是什么 : $n
测试script : mytest.sh
#!/bin/bash
echo "The num of parameters are ==>$#";
echo "The name of this program ==>$0";
echo "The values of parameters ==>$@";
parameters="$@";
count=0;
for var in $parameters
do
echo "The $count value ==>$var";
let count++;
done
执行:sh mytest.sh 1 2 3 4 5 6 输出结果:
The num of parameters are ==>6
The name of this program ==>sleep.sh
The values of parameters ==>1 2 3 4 5 6
The 0 value ==>1
The 1 value ==>2
The 2 value ==>3
The 3 value ==>4
The 4 value ==>5
The 5 value ==>6
2》系统操作符介绍
1. 大小判定操作符
-eq : =
-ne : !=
-gt : >
-lt : <
-ge : >=
-le : <=
2. 文件系统相关测试
[ -f $var ] : $var包含正常的文件路径或文件名,返回为真
[ -x $var] : $var为可执行文件,返回为真
[ -d $var ]: $var为目录,返回为真
[ -e $var ]: $var文件存在,返回为真
[ -c $var ]: $var是一个字符设备文件路径,返回为真
[ -b $var ]: $var是一个块设备文件路径,返回为真
[ -w $var ]: $var文件可写,返回为真
[ -r $var ]: $var文件可读,返回为真
[ -L $var ]: $var为符号链接,返回为真
3. 字符串比较
注意:使用字符串比较时,最好采用双中括号
在“=”前后各有一个空格,如果忘记加空格那就不是比较关系了,而变成了赋值
[[ $str1 = $str2 ]] : 判字符串相等
[[ $str1 != $str2 ]] : 判字符串不等
[[ $str1 > $str2 ]] : 判$str1字符串序列大于$str2
[[ $str1 < $str2 ]] : 判$str1字符串序列小于$str2
[[ -z $str1 ]] : 判$str1是否为空 ""
[[ -n $str1 ]] : 判$str1 不为空
if [[ -z $str1]] && [[ -n $str2 ]];
then
execute commands ;
fi
4. if || for 让你的光驱托盘动起来吧。运行这个shell脚本吧,很有趣哦。
#!/bin/bash
read -p "How many times do you want to exec:" n
if [ $n -eq 0 ];
then
echo "Can not be zero ..."
exit 0
fi
read -p "How long times do you want to sleep:" time
if [ $time -eq 0 ];
then
echo "Can not be zero ..."
exit 0
fi
for((i=0;i<$n;i++));
do
eject # 让光驱弹出
sleep $time
eject -t # 让光驱合上
done