shell——if [ <判断表达式> ]总结、常用符号

if 判断:if [ <参数> ]

<文件表达式>

if [ -e filename ] #如果 文件filename存在,则为真 
if [ -d filename ]  #如果 filename为目录,则为真  
if [ -f filename ]  #如果 filename为常规文件,则为真 
if [ -L filename ]  #如果 filename为符号链接,则为真 
if [ -r filename ]  #如果 filename可读,则为真  
if [ -w filename ]  #如果 filename可写,则为真  
if [ -x filename ]  #如果 filename可执行,则为真 
if [ -s filename ]  #如果文件长度不为0,则为真 
if [ -h filename ]  #如果文件是软链接,则为真 
if [ filename1 -nt filename2 ]  #如果 filename1比 filename2新,则为真 
if [ filename1 -ot filename2 ]  #如果 filename1比 filename2旧,则为真

<整数变量表达式 >

if [ number1 -eq number2 ]  #等于 
if [ number1 -ne number2 ]  #不等于 
if [ number1 -gt number2 ]  #大于 
if [ number1 -ge number2 ]  #大于等于 
if [ number1 -lt number2 ]  #小于 
if [ number1 -le number2 ]  #小于等于

<字符串变量表达式>

string = ""
if [ -n $string ]     #如果string 非空(非0),返回0(true)   
if  [ -z $string  ]   #如果string 为空,则为真 
if  [ $sting ]        #如果string 非空,返回0 (和-n类似) 

string2 = ""
if [ $string == $string2 ]#如果string1等于string2,则为真
str = "hello"
if [ "${str}" = "hello" ]

可改写为

if [ "${str}"x = "hello"x ]

在字符串后面拼接上字符串x,保证等式两边始终都是有效值,避免当变量为空时的报错;

<逻辑表达式>

-a	 #与 and
-o 	 #或 or
! 	 #逻辑非 not 

常用符号

1.&&

cmd1 && cmd2 # && 左边的cmd1执行成功,则执行cmd2;否则cmd2不执行

2.||

cmd1 && cmd2 # ||则与&&相反。如果||左边的命令(cmd1)未执行成功,那么就执行||右边的命令(cmd2);如果左边的命令执行成功了,那么就不会执行右边的命令

3.()

(cmd1;cmd2;cmd3;cmd4) # 分隔一组命令

4.{}

{ cmd1; cmd2; cmd3;... } # cmd与{} 间有空格
  • {}代替();将{}中的组命令最为一个整体放到子shell中执行

5.>与 >> 重定向符号

5.1 >

‘>’ 为创建

echo "" > path/xxx  # path/xxx 不存在则创建、存在则覆盖刷新

5.2 >>

‘>>’ 为追加

echo "" >> path/xxx  # path/xxx 不存在则创建、存在则在原来的基础上追加

5.3 特殊标准流

0 —— 标准输入
1 —— 标准输出
2 —— 标准错误文件描述符
echo "111111111111" >  &1

6.$符号的常见用法

1、$#:表示执行脚本传入参数的个数

2、$*:表示执行脚本传入参数的列表(不包括$0)

3、$$:表示进程的id;Shell本身的PID(ProcessID,即脚本运行的当前 进程ID号)

4、$!:Shell最后运行的后台Process的PID(后台运行的最后一个进程的 进程ID号)

5、$@:表示获取执行脚本传入的所有参数

6、$0:表示执行的脚本名称

7、$1:表示第一个参数

8、$2:表示第二个参数

9、$?:表示脚本执行的状态,0表示正常,其他表示错误

参考

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值