深圳市土方建设网站,计算机网站建设开题报告,高校两学一做专题网站,百度竞价排名又叫目录 一、参数传递
二、运算符
1、算术运算符#xff08;、-、*、/、%、、、#xff01;#xff09;
2、关系运算符
3、逻辑运算符
4、字符串运算符
5、文件运算符 一、参数传递
执行脚本时可以为脚本文件传递参数#xff0c;在脚本中可以处理这些参数。
第n个参数…目录 一、参数传递
二、运算符
1、算术运算符、-、*、/、%、、、
2、关系运算符
3、逻辑运算符
4、字符串运算符
5、文件运算符 一、参数传递
执行脚本时可以为脚本文件传递参数在脚本中可以处理这些参数。
第n个参数通过$n获取。下面两个例子表明了对参数的一些常见的使用方法。
[rootVirTrxcx test]# cat var.sh
#! /bin/bash
echo $1 # 获取第一个参数
echo $2 # 获取第二个参数
echo $# # 获取参数个数
echo $* # 获取所有参数
echo $ # 获取所有参数
echo $? # 获取程序结束状态0表示正常退出# 传递参数的方法执行脚本时后面以空格分开参数即可
[rootVirTrxcx test]# ./var.sh hello,this is parameter1 parameter2 parameter3
hello,this is parameter1
parameter2
3
hello,this is parameter1 parameter2 parameter3
hello,this is parameter1 parameter2 parameter3
0 $*和$都会获取所有参数
区别在于$*把获取到的所有参数当成一个整体而$把获取到的每个参数当成独立的引用。
# 在这里展示$*和$的区别下面会循环输出二者的内容
for i in $*;doecho $i
donefor i in $;doecho $i
done# 在这里设置一个bug
nameTrxcx
readonly name
unset name
echo $?
[rootVirTrxcx test]# ./var.sh p1 p2
p1 p2
p1
p2
./var.sh: line 14: unset: name: cannot unset: readonly variable
1 二、运算符
1、算术运算符、-、*、/、%、、、
通过expr实现数学运算
[rootVirTrxcx test]# cat var.sh
#! /bin/bash
a10
b20valexpr $a \* $b $b
echo $valif [ $a ! $b ]
thenecho a doesnt equal b
fi[rootVirTrxcx test]# ./var.sh
220
a doesnt equal b
要点说明
Shell编程中有-*/%等运算符号但*前面必须加上\转义才能正确使用。运算符和数字变量之间应该以空格分隔条件表达式放在[]之间应该存在空格分隔
2、关系运算符
假设a10b20。
-eq是否相等[ $a -eq $b ] 返回 false。-ne是否不等[ $a -ne $b ] 返回 true。
类似的
-gt是大于-lt是小于-ge是大于等于-le是小于等于
e是equalg是greaterl是lessn是nott是than通过全称可以很容易记住缩写的含义。
3、逻辑运算符
-a与运算-o或运算!非运算。使用方法[ $a -a $b ]与运算||或运算。使用方法[[ $a $b ]]
4、字符串运算符
字符串相等返回true。例如[ $str1 $str2 ]。!字符串不等返回true。例如[ $str1 ! $str2 ]。-z字符串长度为0返回true。例如[ -z $str1 ]。-n字符串长度不为0返回true。例如[ -n $str1 ]。$字符串不为空返回true。例如[ $str1 ]。
5、文件运算符
-r、-w、-x文件是否可读、可写、可执行
-f、-d、-b、-c文件是否是普通文件、是否是目录、是否是块设备文件、是否是字符设备文件
-s、-e文件是否为空、文件是否存在
使用方法[ -r $file ]