$(dirname $0)

查看公司的java部署脚本,发现第一行使用了$(dirname $0)这个写法,由于不是很了解这个写法的作用,于是百度下用法。

作用

在linux中,dirname命令可以返回文件所在的目录。$0 表示当前动行的命令名。

因此此写法的作用为: 切换到 脚本 所在的目录

在shel脚本中,$的作用有很多,下面是网上抄录的一些功能

命令替换

在bash中,$( )(反引号)都是用来作命令替换的。

[root@instance-nri61g29 ~]# echo today is $(date "+%Y-%m-%d")
today is 2019-05-25
[root@instance-nri61g29 ~]# echo today is `date "+%Y-%m-%d"`
today is 2019-05-25

建议使用$( ),因为``很容易搞混。

${ }变量替换

一般情况下,$var${var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围

[root@instance-nri61g29 ~]# A=hello
[root@instance-nri61g29 ~]# echo $AB

[root@instance-nri61g29 ~]# echo ${A}B
helloB

$0,$?,$!等的特殊用法

$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
∗ 所 有 参 数 列 表 。 如 " * 所有参数列表。如" "*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
@ 所 有 参 数 列 表 。 如 " @ 所有参数列表。如" @"@“用「”」括起来的情况、以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
1 ~ 1~ 1n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值