本文主要是介绍$(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~ 1~n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
这篇关于$(dirname $0)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!