测试开发进阶(四十)
程序员文章站
2024-03-22 08:23:52
...
运算
$ echo $((10 + 20))
# 30
$ one=25
$ two=12
$ echo $((one+two))
# 37
$ echo $((one>two))
# 1
$ echo $((one<two))
# 0
expr
$ echo $(expr $one+$two)
# 25+12
$ echo $(expr $one + $two)
# 37
比较大小需要转义
$ echo $(expr $one \> $two)
$ echo $(expr $one \< $two)
条件表达式
返回值
条件成立,返回0
条件不成立,返回1
逻辑表达式
&&
||
文件表达式
-f
判断输入内容是非为一个文件-d
判断输入内容是非为一个目录-x
判断输入内容是非可执行-e
判断文件是非存在
数值操作符
-eq
相等-gt
大于-lt
小于-ne
不等于
字符串比较
==
!=
进行判断
test
和 []
效果一致
$ [ 1 = 2 ] && echo "条件不成立"
$ [ 1 = 2 ] || echo "条件不成立"
$ test 1 = 2 && echo "条件不成立"
$ test 1 = 2 || echo "条件不成立"
查看使用方法
$ man [ ]
$ man test
Shell脚本
格式要求
在文件首行指定执行shell的程序
#!/bin/bash
#Author:zhongxin
后缀建议为
.sh
执行失败时,使用
exit
返回非零值,来退出程序默认锁进4个空格
执行脚本
# 第一种方式
$ bash 1126.sh
# 第二种方式
$ chmod +x 1126.sh
$ ./1126.sh
# 第三种方式
$ source 1126.sh
注释
单行注释:
#
多行注释
#!/bin/bash
#Author:zhongxin
:<<!
要注释的内容
!
pwd
函数
格式一
#!/bin/bash
函数名()
{
...
}
格式二
#!/bin/bash
function 函数名
{
...
}
#!/bin/bash
#Author:zhongxin
:<<!
要注释的内容
!
hello()
{
echo "Hello,Shell"
}
hello
function greet
{
echo "Hello,zx"
}
greet
入参
function greet
{
echo "Hello,$1"
echo "Hello,$2"
echo "Hello,$3"
}
greet 'a' 'b' 'c'
接收命令行传参
greet $1 $2 $3
#!/bin/bash
#Author:zhongxin
read -p "请输入你的姓名:" name
read -p "请输入你的年龄:" age
read -p "请输入你的爱好:"
function info
{
# -e 运行\n换行
echo -e "你的姓名为:${name}\n你的年龄为:${age}\n你的爱好为:${REPLY}"
}
info
流程控制
if
if [ 条件1 ]
then
指令1
elif [ 条件2 ]
then
指令2
else
指令2
fi
例子:
#!/bin/bash
#Author:zhongxin
read -p "输入你的年龄:"
if [ ${REPLY} -ge 70 ]
then
echo "好好养生"
elif [ ${REPLY} -ge 18 ]
then
echo "好好工作"
else
echo "好好学习"
fi
for
方式一
for 值 in 列表
do
执行语句
done
例子
dirs=$(ls /)
for i in ${dirs}
do
index=$((${index} + 1))
echo "${index}.${i}"
done
方式二
max=10
for ((i=1;i<=max;i++))
do
执行语句
done
例子
#!/bin/bash
#Author:zhongxin
max=10
for ((i=0;i<=max;i++))
do
echo "i=${i}"
done