shell中一些特殊符号的使用

  • $()和``都用来做命令替换用的
  • $var${var}都可以做变量替换
  • $[]$(())进行数学运算
  • echo $?用来查看上条执行的命令执行状态
  • $$用来表示当前执行脚本的进程号
NUM=1
$[$NUM+1]
$((NUM+1))

以上对NUM进行运算的效果是一样的

  • &&运算符

command 1 && command 2

只有command 1 执行成功以后才执行command 2

  • || 运算符

command 1 || command 2

command 1执行失败后才执行command 2

单引号和双引号的区别

单引号:是所见即所得,单引号中的内容是什么,则输出的时候,内容都不会改变
双引号:双引号中的内容如果有变量、命令(加反引号) 、特殊转义符,会先将它们先解析,再输出。

示例:
当单引号和双引号中的内容都包含命令时,输出的结果如下:
在这里插入图片描述

$$获取当前执行脚本的进程号

首先要执行的脚本内容如下:
在这里插入图片描述
在后台运行脚本(&符号表示后台运行),结果如下,显示进程号
在这里插入图片描述
查看a.pid文件内容,发现同以上的进程号相同:
在这里插入图片描述
后台运行的脚本也可以采用ps -ef | grep test_pid | grep -v grep命令来查看进程号
在这里插入图片描述

  • test_pid.sh脚本中的echo $$命令得到的是进程号

双小括号"(())"进行运算

双小括号内可以进行数值运算,赋值,逻辑运算

  • 运算
echo $((2+3))
  • 赋值
    在这里插入图片描述
  • 逻辑运算
((5>4&&4==4))   常用于条件判断 

示例:
在这里插入图片描述


  • “(())”里的字符之间有或没有空格都不影响

${#i}作用

${#i} ,#是计算变量 i 的字符个数

条件测试语法

语法

语法说明
test 测试表达式使用test命令
[ 测试表达式 ]测试表达式与[]两边界之间需要一个空格;与test命令等价
[[ 测试表达式 ]]测试表达式与双中括号两边界之间需要一个空格
((测试表达式))测试表达式与双小括号两边界可以不使用空格,一般用于if语句

区别

  • 在[[]]双中括号中可以使用通配符等进行模式匹配,其他的不行
  • &&、||、>、<等操作符可以应用于[[]]中,不能用于[];在[]中一般使用-a、-o、-gt、-lt代替上述操作符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值