Linuxshell逻辑运算符、逻辑表达式详解扩展
算数运算符
$0 当前脚本名
$* 传递给脚本的所有参数
$$ 当前脚本的pid
$! 后台运⾏最后⼀个进程的pid
$? 上⼀个条命令是否执⾏成功,成功为0,否则为1
$#脚本的参数个数
让变量永久⽣效,可以把定义好的变量写⼊配置⽂件
当登录系统或新开启⼀个ssh连接启动bash进程时,⼀定会加载这4个配置⽂件:
#vim/etc/profile#系统全局环境和登录系统的⼀些配置
#vim/etc/bashrc#shell全局⾃义配置⽂件,⽤于⾃定义shell
#vim/root/.bashrc#⽤于单独⾃定义某个⽤户的bash
[root@xuegod63 ~]#vim/root/.bash_profile#⽤户单独⾃定义某个⽤户的系统环境
逻辑运算符解析:
-f        判断⽂件是否存在 eg:if[-f filename ]
-d    判断⽬录是否存在 eg:if[-d dir    ]
-eq      等于应⽤于:整型⽐较 equal
-ne      不等于应⽤于:整型⽐较 not equal
-lt      ⼩于应⽤于:整型⽐较 letter
-gt      ⼤于应⽤于:整型⽐较 greate
-le      ⼩于或等于应⽤于:整型⽐较
-
ge        ⼤于或等于应⽤于:整型⽐较
-a      双⽅都成⽴(and)逻辑表达式 –a 逻辑表达式
-o      单⽅成⽴(or)逻辑表达式 –o 逻辑表达式
-z      空字符串
追加信息
echo'touch  / '>>/etc/profile
特殊变量
linux重定向
关系运算符
-
eq 是否相等
-ne 是否不相等
-gt 是否⼤于
-lt 是否⼩于
-ge 是否⼤于等于
-le 是否⼩于等于
布尔运算符
! ⾮运算
-o 或运算
-a 与运算
字符串运算符*
= 字符串是否相等
!= 字符串是否不相等
-z 字符串长度是否为0
-n 字符串长度是否不为0
str 字符串是否为空
逻辑运算符
&& 逻辑and
ll 逻辑or
shell常见通配符:
正则表达式的使⽤
shell元字符(特殊字符 Meta)
shell转义符
>, >>, 2>, 2>>
前⾯讲过重定向符号> 以及>> 分别表⽰取代和追加的意思,然后还有两个符号就是这⾥的2> 和 2>> 分别表⽰错误重定向和错误追加重定向,当我们运⾏⼀个命令报错时,报错信息会输出到当前的屏幕,如果想重定向到⼀个⽂本⾥,则要⽤2>或者2>>
[ ] 中括号,中间为字符组合,代表中间字符中的任意⼀个。
1mand1 ; command2
2mand1 && command2
3mand1 || command2
使⽤ ”;” 时,不管command1是否执⾏成功都会执⾏command2;
使⽤ “&&” 时,只有command1执⾏成功后,command2才会执⾏,否则command2不执⾏;
使⽤ “||” 时,command1执⾏成功后command2 不执⾏,否则去执⾏command2,总之command1和command2总有⼀条命令会执⾏。
shell中单引号和双引号区别
‘’ 在单引号中所有的字符包括特殊字符(KaTeX parse error: Undefined control sequence: \) at position 7: ,'',`和\)都将解释成字符本⾝⽽成为普通字…, ‘’, `和\以外所有的字符都解释成字符本⾝,拥有“调⽤变量的值”、“引⽤命令”和“转
1、Linux shell 逻辑运算符、逻辑表达式详解
⼀、逻辑运算符
1、逻辑卷标表⽰意思
1)关于档案与⽬录的侦测逻辑卷标
-f 常⽤!侦测『档案』是否存在 eg: if [ -f filename ]
-d 常⽤!侦测『⽬录』是否存在
-b 侦测是否为⼀个『 block 档案』
-c 侦测是否为⼀个『 character 档案』
-S 侦测是否为⼀个『 socket 标签档案』
-L 侦测是否为⼀个『 symbolic link 的档案』
-e 侦测『某个东西』是否存在!
2)关于程序的逻辑卷标
-G 侦测是否由 GID 所执⾏的程序所拥有
-O 侦测是否由 UID 所执⾏的程序所拥有
-p 侦测是否为程序间传送信息的 name pipe 或是 FIFO (⽼实说,这个不太懂!)
3)关于档案的属性侦测
-r 侦测是否为可读的属性
-w 侦测是否为可以写⼊的属性
-x 侦测是否为可执⾏的属性
-s 侦测是否为『⾮空⽩档案』
-
u 侦测是否具有『 SUID 』的属性
-g 侦测是否具有『 SGID 』的属性
-k 侦测是否具有『 sticky bit 』的属性
4)两个档案之间的判断与⽐较 ;例如[ test file1 -nt file2 ]
-nt 第⼀个档案⽐第⼆个档案新
-ot 第⼀个档案⽐第⼆个档案旧
-ef 第⼀个档案与第⼆个档案为同⼀个档案( link 之类的档案)5)逻辑的『和(and)』『或(or)』
&& 逻辑的 AND 的意思
|| 逻辑的 OR 的意思
2、运算符号 代表意义
= 等于 应⽤于:整型或字符串⽐较 如果在[] 中,只能是字符串!=不等于 应⽤于:整型或字符串⽐较 如
果在[] 中,只能是字符串< ⼩于 应⽤于:整型⽐较 在[] 中,不能使⽤ 表⽰字符串⼤于 应⽤于:整型⽐较 在[] 中,不能使⽤ 表⽰字符串
-eq 等于 应⽤于:整型⽐较
-ne 不等于 应⽤于:整型⽐较
-lt ⼩于 应⽤于:整型⽐较
-gt ⼤于 应⽤于:整型⽐较
-le ⼩于或等于 应⽤于:整型⽐较
-ge ⼤于或等于 应⽤于:整型⽐较
-a 双⽅都成⽴(and) 逻辑表达式 –a 逻辑表达式
-o 单⽅成⽴(or) 逻辑表达式 –o 逻辑表达式
-z 空字符串
-n ⾮空字符串
⼆、逻辑表达式
1、test 命令
使⽤⽅法:test EXPRESSION
如:
[root@localhost ~]# test 1=1&& echo 'ok'
ok
[root@localhost ~]# test -d /etc/&& echo 'ok'
ok
[root@localhost ~]# test 1-eq 1&& echo 'ok'
ok
[root@localhost ~]# if test 1=1; then echo 'ok'; fi
ok

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。