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条评论