shell脚本中linux命令特殊字符,linux shell下的一些特殊变量以及神奇的感叹号(!)

日常服务运维工作的时候编写shell script经常用到用到写特殊的变量,正好今天Q群里有小伙伴在提问索性干脆写篇文章存档。

大家都知道在shell脚本中使用变量时变量名前都需要带一个$(和世界上最好的语言php不谋而合。(ಡωಡ) ),既然用户可以自己定义变量那么shell环境中是否和php一样有着一些开箱即用的系统预定义好的特殊变量呢?答案是肯定的,下面奶嘴就为大家一一道来。

1、$$ 当前shell本身的pid。

2、$! shell最后运行的后台进程pid

3、$? 上一个命令执行后的返回值(结束代码int类型)

4、$- shell的可用选项,echo $- 会输出himBH,表示 -h -i -m -B -H参数是可用的,可以参考 help set。

5、$# 输入的参数个数

6、$0 当前shell壳脚本文件名。

7、$1~$n 输入的各个参数值,$1参数1,$2参数2,$3参数3,$n参数n....

8、$* 所有的输入参数的列表,如果用""括起则表示使用空格作为间隔符的参数列表。

9、$@ 同上,一样是表示所有输入的参数列表,唯一不同是用""括起来的时候$@表示使用""包裹并使用空格作为间隔符的参数列表

说完shell变量,我们再来聊聊Linux下感叹号(!)的用法,在linux系统下感叹号是个比较特殊的字符,在shell脚本中表示否定的意思,但是除了这些感叹号在linux还有些比较有趣的功能。

取出并执行历史命令

首先我们执行history命令

[chenxi@JD ~]$ history

256660ceaaa2f8c174d4c8064a37693f.pnghistory命令

列出历史执行过的命令。然后

[chenxi@JD ~]$ !1 #表示执行第一条命令

[chenxi@JD ~]$ !-1 #执行倒数第一条命令

[chenxi@JD ~]$ !! #执行倒数第一条命令,与!-1效果一样

!$传递上一个命令中的参数

9b51a2a9b9ee946c84158ee2fb932d41.png

[chenxi@JD ~]$ ls -l

[chenxi@JD ~]$ ls !$

!?字符串 指向最近一次包含此字符串的命令

[chenxi@JD ~]$ ps

PID TTY TIME CMD

12053 pts/0 00:00:00 bash

24129 pts/0 00:00:00 ps

[chenxi@JD ~]$ !?p

ps

PID TTY TIME CMD

12053 pts/0 00:00:00 bash

24134 pts/0 00:00:00 ps

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,非商业性质可转载须署名链接,详见本站版权声明。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值