shell 脚本基本语法

shell 脚本基本语法及简单应用

变量赋值:
aa=11 bb=22
等号两遍不得出现空格

环境变量:
当前shell环境的变量
export VARNAME=VALUE 设置环境变量
unset VARNAME 撤销变量

查看变量:
set 查看所有变量
printenv env ecport 查看当前shell中的环境变量

特殊变量:

  • $? 保存上一个命令执行的返回状态 0正确 1错误
  • $# 输入参数的个数
  • $* 参数列表
  • $@ 参数列表
  • $0 执行脚本的名字
  • $_ 代表上一个命令最后一个参数
  • $! 代表最后指令后台命令的PID

数字运算及运算符:

  1. dd=$(expr $aa + $bb) // +号两侧必须有空格
  2. dd=$(( $aa + $bb))
  3. dd=$[ $aa + $bb ]

cc=$((1 && 0)) //逻辑与运算,两边都是1,结果为1 ; 否则为0

条件判断命令:
test n1 -参数 n2 //真返回0,假返回1

整数:
参数列表为

  • -lt 小于
  • -le 小于等于
  • -gt 大于
  • -ge 大于等于
  • -eq 等于
  • -ne 不等于

可用中括号代替test
[ 1 -lt 4 ] //表达式与中括号间有空格

字符串测试

  • s 字符串非空
  • s1 = s2
  • s1 != s2
  • -z 字符串为空
  • -n 字符串长度大于0

文件测试:

  • -f 存在且是普通文件
  • -f 存在且是目录
  • -s 存在且字节数大于0
  • -r 存在且可读
  • -w 存在且可写
  • -x 存在且可执行

[ -f filename ] //判断文件是否为文件

其他参数:

  • -a 逻辑与
  • -o 逻辑或
  • ! 逻辑非

控制流程:

//if 控制流程        if ls -l | grep "$1" > /dev/null
 if [ $# -eq 0 ]
then
	echo ""
else if [ $# -gt  1 ]      
then
	echo ""
else
	echo ""
fi

//case  控制流程
case "$#" in
0)
	echo ""
1)
	echo ""
*)
	echo ""
esac

//for  控制流程
for i in `seq 1 9`       //生成列表   {0...100}    seq 1 100     seq 2 2 100 
do
	echo `expr $i \* 10`   *乘号前加转义符
done

//while  控制流程     while  true
i=1
sum=0
while [ $i -le 100 ]
do
	sum=$[ $sum+$i ]
	i=$[ $i+1 ]
done
echo $sum 

read 变量1 变量2
可以从键盘上读取多个变量的值
如果输入的数据不够,没有输入的为空
如果输入的数据超过,则将最后一个变量被赋予所有剩余的值
read a b
echo $[ a + a+ b ]

shell 定义函数:

函数名()
{
	命令
}
//或者
function 函数名()
{
	命令
}

/例子
hello()
{
	echo "hello world !!"
}
//调用时,直接调用函数名即可

shell 数组和关联数组:

//定义一个数组:
array=(1 2 3 4 5 6)
//或者
array[0]="test1"
array[1]="test2"
array[2]="test3"

//打印数组:
echo $ {array[0]}
index=0
echo $ {{array[$index]}
echo ${array[*]}

//打印数组长度:
echo ${#array[*]}

猜你喜欢

转载自blog.csdn.net/qq_40393187/article/details/88892286