1.Shell传递参数
在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
echo "第一个参数:$1" #1
echo "参数个数为:$#" 。 #3
echo "传递参数作为一个字符串显示:$*" 。 #1 2 3
在执行脚本时 /bin/sh test.sh 1 2 3 #传递参数1 2 3
$@与$*区别:(循环遍历输出)
for i in "$*"; do
echo $i
done
for i in "$@"; do
echo $i
done
输出:1 2 3
1
2
3
2.Shell基本运算符 . !!!表达式和运算符之间需有空格,完整的表达式需要被``包裹
算数运算符:+ - * / % = == !=
val=`expr 2 + 2`
echo "两数之和:$val"
关系运算符:
a=10
b=20
if [ $a -eq $b]
then
echo "$a -eq $b : a等于b"
else
echo "$a -eq $b : a不等于b"
fi
布尔运算符:
if [$a -lt 100 -a $b -gt 15]
then
echo "$a != $b : a不等于 b"
fi
逻辑运算符:
字符串运算符:
a="abd"
if [-z $a]
then
echo "-z $a : 字符串长度为0"
else
echo "-z $a : 字符串长度不为0"
fi
文件测试运算符:
if [-e $file]
then
echo "文件存在"
fi
3.Shell test命令:相当于if中的[] 用于检查某个条件是否成立(数值,字符,文件)
文件测试:
cd /Users
if test -e ./test.sh
then
echo "文件存在"
else
echo "文件不存在"
fi
4.Shell流程控制
if ====>if... then... fi
if else====>if.. then ...else .. fi
if else-if else==>if...then ...elif ... then... else...fi
for循环==>for ... in ....do ... done
跳出循环==>break continue