Linux学习—善用判断式(test、[]、$0...)

test命令进行条件判断

1 利用test命令的测试功能

当要检测系统上面某些文件或者是相关的属性时,利用test命令来工作真是好用。

示例1:检测/dmtsai是否存在
在这里插入图片描述
还可以用以下测试标志来判断
在这里插入图片描述
在这里插入图片描述
示例2 :用户输入文件名,来书写脚本判断
1)这个文件是否存在,若不存在则给予一个“Filename dose not exist”的信息,并中断程序;
2)若这个文件存在,则判断它是一个文件或目录,结果输出“Filename is regular file ”或“Filename is directory”;
3)判断下,执行者的身份对这个文件或目录所拥有的权限,并输出权限数据。在这里插入图片描述
在这里插入图片描述
执行这个脚本后,它会依据你输入的文件名来进行检查,先看是否存在,再看文件或目录类型,最后判断权限。但是你必须注意,因为root在很多权限的限制上面都是无效的,所以使用root执行这个脚本,常常会发现与ls -l观察到的结果并不相同。所以,建议使用一般用户来执行这脚本试试看,不过你必须要使用root的身份先将这个脚本转移给用户就是,不然一般的用户无法进入/root的目录。

2 利用判断符号[]

示例1:想要知道$HOME这个变量是否为空
在这里插入图片描述
使用中括号注意,包括通配符与正则表达式,所以如果要在bash的语法当中使用中括号作为shell判断式,注意中括号的两端需要有空格符来分隔

使用注意事项:

  • 在中括号[]内的每个组件都需要有空格键来分隔;
  • 在中括号内的变量,最好都以双引号括号起来;
  • 在中括号内的常量,最好都以单或双引号括号起来。

示例2:用中括号判断
输入:vim sh06.sh
在这里插入图片描述

在这里插入图片描述

3 shell script 的默认变量($0,$1…)

如果想要重新启动系统注册表文件的功能。

特殊变量可以在script内使用来调用这些参数

  • $#:代表后接的参数“个数”;
  • $0:代表文件名;
  • $@:代表“$1”、“$2”、“$3”、“$4”之意,每个变量是独立的(用双引号括起来);
  • $*:代表“ “$1c$2c$3c$4” ”,其中 c为分隔字符,默认为空格键,所以本例中代表" “$1 $2 $3 $4” "之意。

示例1:假设我要执行一个可以携带参数的script,执行该脚本后屏幕会显示如下的数据:
1)程序文件名;
2)共有几个参数;
3)若参数的个数小于2则告知用户参数数量太少;
4)全部的参数内容;
5)第一个参数;
6)第二个参数。
在这里插入图片描述

执行结果
在这里插入图片描述

示例2:造成参数变量号码偏移
输入:vim sh08.sh
在这里插入图片描述
执行结果:
在这里插入图片描述
shift知识点:看执行结果可以知道 shift会移动变量,shift后面可以接数字,代表拿掉最前面的几个参数的意思

学习资料:鸟哥的Linux私房菜

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值