linux shell示例代码
1. shell 参数
- $0 表示程序名
- $1~$9 表示位置参数,超过 9 个参数时,使用 ${10} 形式
- $# 表示参数的个数
- $* 所有参数当作一个整体来使用
- $@ 把每个参数作为一个字符串来使用,可使用 for 循环来遍历
下面来看一个示例:
#!/bin/sh
echo $0
echo $#
if [ $# -gt 0 ]; then
echo $*
for p in $@
do
echo $p
done
fi
if [ $# -gt 10 ]; then
echo ${11}
fi
2. shell if 条件判断
2.1 语法
if 语句:
if [ $# -gt 0 ]; then
echo $*
for p in $@
do
echo $p
done
fi
if else 语句:
if [ $# -gt 10 ]; then
echo ${11}
else
echo "param count less than or equal 10"
fi
if elif else 语句:
if [ $# -lt 5 ]; then
echo "less than 5"
elif [ $# -lt 10 ]; then
echo "less than 10"
elif [ $# -lt 15 ]; then
echo "less than 15"
else
echo "greater than or equal 15"
fi
2.2 shell 数字大小判断
- 大于 -gt (greater than)
- 小于 -lt (less than)
- 大于或等于 -ge (greater than or equal)
- 小于或等于 -le (less than or equal)
- 不相等 -ne (not equal)
- 相等 -eq (equal)
示例:
if [ $# -gt 0 ]; then
echo $*
for p in $@
do
echo $p
done
fi
2.3 shell 字符串相等判断
字符串相等判断:
type="client"
if [ "$type"x = "client"x ]; then
echo "client"
else
echo "server"
fi
字符串不等判断:
type="client"
if [ "$type"x != "client"x ]; then
echo "server"
else
echo "client"
fi
3. shell 循环
3.1 for 循环
# case1
for p in $@
do
echo $p
done
# case2
for item in "a1 a2 a3 a4 a5"
do
echo $item
done
# case3
sum=0
for ((i=1; i<=100; i++))
do
((sum += i))
done
echo $sum
3.2 while 循环
i=1
sum=0
while ((i <= 100))
do
((sum += i))
((i++))
done
echo $sum
4. shell 函数
无参数的函数:
main()
{
echo "main"
}
main
带参数的函数:
main()
{
if [ $# -gt 0 ]; then
echo $*
for p in $@
do
echo $p
done
fi
echo "main"
}
main b1 b2 b3 b4 b5
5. shell 执行命令
直接写入命令就行,如:
#!/bin/sh date
执行字符串命令:
str="date" eval $str
获取命令执行输出的信息:
str="date" result=`eval $str` echo $result
$? 表示最近一个命令的退出码
6. 其他
- set +e,当这句之后,遇到非 0 的返回值,会继续执行
- set -e,当这句之后,遇到非 0 的返回值,会退出执行
文章评论
共0条评论