目录
1、test:测试表达式是否成立? 成立则为0? ? 不成立则为1
举例3、查看当前目录下的文件数是否大于10 如果大于,则进行提示
变量是计算机语言中能储存计算结果或能表示值的抽象概念。保存将来会变化的数据,即使数据变化,直接调用变量即可。
shell变量用来存放系统和用户需要使用的特定参数,而且这些参数可以根据用户的设定或系统环境的变化响应变化。通过使用变量,shell程序能够提供更加灵活的功能,适应性更强。
变量是用来存放系统和用户需要使用的特定参数
①变量名:使用固定的名称,由系统预设或用户定义
②变量值:能够根据用户设置,系统环境的变化而变化
默认情况下,新定义的变量只在当前的shell环境中有效,因此被称为局部变量。当进入子程序或新的子shell环境时局部变量将无法在使用。
可以通过内部命令export将指定的变量导出为全局变量,使用用户定义的变量在所有的子shell环境中能够继续使用。
格式:
export 变量名=变量值
vim /etc/profile
export PATH+=:/mnt
[root@localhost data]#source /etc/profile
[root@localhost data]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/data:/mnt
unset 加变量名
定义变量:变量名=变量值
调整变量:echo$变量名
取消变量:unset变量名
追加变量:变量名+=追加的内容
export变量 可以让子进程也可以使用变量
1、区分大小写
2、不能使用数值开头
①双引号""可以识别变量
②单引号''不能识别变量
③反撇号:命令替换,提取命令执行后的输出结果和$(...)相同
④{}:定义变量名的范围
read -p 从键盘输入的内容变成变量
运算符号:+-/*\%(取余数)
let 变量名=变量一运算符号 变量二
echo $变量名
变量名=$[算术表达式]
echo $变量名
(变量名=算术表达式)
echo $[RANDOM] 取随机数 范围是0-32767
echo $[RANDOM%33] 取0-32 的随机数
echo $[RANDOM%33+1] 取1-33的随机数
?$* ? ? ?返回所有的位置参数,所有参数当作一个整体返回
? ? ? ? ? ? ? ?$@ ? ?返回所有的位置参数,所有参数当作个体返回
? ? ? ? ? ? ? ?$? ? ? ?表示前一条命令执行的返回状态,返回值为0表示正确,返回任何非0值均表示出现异常
? ? ? ? ? ? ? ?$# ? ? ?表示命令行中位置参数的总个数
? ? ? ? ? ? ? ?$0 ? ? ? 表示当前执行的脚本或程序的名称
? ? ? ? ? ? ? ?$$ ? ? ? ?当前bash的进程id
? ? ? ? ? ? ? ?$! ? ? ? ?后台任务最后一个id
env 看到所有的环境变量
? ? ? ? ? ? ? ? ?$USER 表示用户名称
? ? ? ? ? ? ? ? ?$HOME 表示用户的家目录
? ? ? ? ? ? ? ? ?$LANG ?表示语言和字符集
? ? ? ? ? ? ? ? ?$PWD ? ?表示当前所在工作目录
? ? ? ? ? ? ? ? ?$PATH ? ?表示可执行用户程序的默认路径
位置变量也称为位置参数,使用$1 $2 $3 ...$9 $0表示当前脚本的文件名称
test [操作选项] 条件表达式
格式[整数1 操作符 整数2]
常见的测试操作符号
操作符 | 含义 |
---|---|
-eq | 等于(Equal) |
-ne | 不等于(Not Equal) |
-lt | 小于(Leser Than) |
-gt | 大于(Greater Than) |
-le | 小于或等于(Lesser or Equal) |
-ge | 大于或等于(Greater or Equal) |
格式:
[ "字符串1" = "字符串2" ] #判断是否相等
[ "字符串1" != "字符串2" ] #判断是否不等
[ -z "字符串" ] #判断字符串内容是否为空
[ -n "字符串" ] #判断字符是否存在
[ 表达式1 ] && [ 表达式2 ] 等同于 [ 表达式1 -a 表达式2 ] 等同于 [[ 表达式1 && 表达式2 ]]
[ 表达式1 ] || [ 表达式2 ] 等同于 [ 表达式1 -o 表达式2 ] 等同于 [[ 表达式1 || 表达式2 ]]