shell命令
1、read命令:从键盘读入数据,赋给变量
如:read USERNAME
echo ${M_VAR}
2、expr命令:对整数型变量进行算术运算
例如:expr 3 + 5
expr $var1 - 5
expr $var1 / $var2
expr $var3 \* 10
复杂的运算:expr expr 5 + 7
/$var4
将运算结果赋予变量:var4=expr $var1 / $var2
var4=$(exprexpr $var1 + $var2
/$var3)
3、变量测试语句:用于测试变量是否相等、 是否为空、文件类型等。
格式:test 测试条件
测试范围:整数、字符串、文件
字符串测试:
test str1=str2 测试字符串是否相等
test str1!=str2 测试字符串是否不相等
test str1 测试字符串是否不为空
test -n str1 测试字符串是否不为空
test -z str1 测试字符串是否为空
整数测试:
test int1 -eq int2 测试整数是否相等
test int1 -ge int2 测试int1是否>=int2
test int1 -gt int2 测试int1是否>int2
test int1 -le int2 测试int1是否<=int2
test int1 -lt int2 测试int1是否<int2
test int1 -ne int2 测试整数是否不相等
文件测试:
test -d file 指定文件是否目录
test -f file 指定文件是否常规文件
test -x file 指定文件是否可执行
test -r file 指定文件是否可读
test -w file 指定文件是否可写
test -a file 指定文件是否存在
test -s file 文件的大小是否非0
变量测试语句一般不单独使用,一般做为if语句的测试条件,如:
if test -d $1 then
…
fi
变量测试语句可用[]进行简化,如:
test -d $1 等价于 [ -d $1 ]
4、流控制语句
流控制语句:用于控制shell程序的流程
(1)exit语句:退出程序执行,并返回一个返回码,返回码为0表示正常退出,非0表示非正常退出。
例如:exit 0
(2) if语句
例:
#!/bin/bash
#判断fileA是否存在,如果不存在创建它
if [ -a fileA ]
then
echo "fileA就绪"
else
touch fileA
fi
更复杂的if语句:
if 条件1 then
命令1
elif 条件2 then
命令2
else
命令3
fi
多个条件的联合:
-a:逻辑与,仅当两个条件都成立时,结果为真。
-o:逻辑或,两个条件只要有一个成立,结果为真。
例:
#!/bin/bash
if [ -d fileA ]
then
echo "fileA 是目录"
elif [ -f fileA ]
then
echo "fileA是普通文件"
elif [ -c fileA -o -b fileA ]
then
echo "fileA是设备文件"
else
echo "无法匹配fileA文件类型"
fi
(3)for…done语句
格式:for 变量 in 名字表
do
命令列表
done
(4)select 变量 in 关键字(选项列表)
do
command 1
... ...
command n
done
(5)case…esac语句,格式:
case 变量 in
字符串1) 命令列表1
;;(;;作用是break)
...
字符串n) 命令列表n
;;
esac
(6)while语句
格式:
while 条件
do
命令
done
(7)until语句
格式:
until 条件
do
命令
done
注:until类似while循环,不同的是until是条件返回值为假时才继续执行。
跳出循环:break和continue
break:跳出整个循环
continue:跳过本次循环,进行下次循环
(8)shift指令:参数左移,每执行一次,参数序列顺次左移一个位置,$#的值减1,用于分别处理每个参数,移出去的参数不再可用
(9)函数应用
函数的定义:
函数名 ()
{
命令序列(shell所实现的功能及指令)
}
注:函数的调用:不带()
函数名 参数1 参数2 …
函数中的变量:变量均为全局变量,没有局部变量
函数中的参数:调用函数时,可以传递参数,在函数中用$1、$2…来引用
(10)declare修饰符
declare -i 定义整型变量
declare -r 定义只读变量
declare -p 查看变量类型
declare -a 定义数组(shell脚本里只有一维数组)
declare -x 添加一条变量到环境变量中
如:declare - i num1=20
declare -i num2=15
declare -i num3=${num1}+${num2}
数组操作:
如:declare -a ARR=(a b c d e f g)
echo "${ARR[1]}"
如:echo "${ARR[*]}"
(11)local修饰符
锁定变量的使用范围(放在逻辑块中)
(12)补充
env:打印环境变量
set:打印变量
unset:删除变量
来源:CSDN
作者:weixin_42282999
链接:https://blog.csdn.net/weixin_42282999/article/details/104513120