$(dirname $0)

2024-08-31 05:32
文章标签 dirname

本文主要是介绍$(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参数…。

这篇关于$(dirname $0)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123026

相关文章

linux shell dirname $0是什么意思

获得当前shell脚本的绝对路径 #!/bin/bashSHELL_FOLDER=$(cd $(dirname $0);pwd)echo ${SHELL_FOLDER}   https://blog.csdn.net/jackyechina/article/details/52813007

linux系统中,pwd获取当前路径,dirname获取上一层路径;不使用 ../获取上一层路径

在实际项目中,我们通常可以使用 pwd 来获取当前路径,但是如果需要获取上一层路径,有不想使用 …/ 的方式,可以尝试使用 dirname指令 测试shell脚本 #!/bin/bash# 获取当前路径CURRENT_PATH=$PWDecho "CURRENT_PATH=$CURRENT_PATH"# 获取上一层路径TOP_PATH=$(dirname $CURRENT_PATH)e

如何理解shell命令 cd $(dirname $0)

理解命令 cd $(dirname $0) 需要逐步拆解和分析每个部分的功能: $0: 在shell脚本中,$0 代表脚本的名称。这个变量包含了脚本的完整路径或相对路径。 dirname $0: dirname 是一个命令,用于去掉路径中的文件名部分,返回目录名。所以 dirname $0 会返回脚本所在的目录。 $(dirname $0): $(...) 是命令替换的语法。它会执行括号内

dirname(__FILE__) 的使用总结

dirname(__FILE__)  php中定义了一个很有用的常数,即 __file__ 这个内定常数是当前php程序的就是完整路径(路径+文件名)。 即使这个文件被其他文件引用(include或require),__file__始终是它所在文件的完整路径,而不是引用它的那个文件完整路径。 请看下面例子: /home/data/demo/test/a.php <?php $the_fu

修改了环境变量~/.bashrc后 报错 命令 “dirname” 可在以下位置找到 * /bin/dirname * /usr/bin/dirname

问题如下: 修改了~/.bashrc后加入了环境变量之后报错,如下所示 (base) jie@dell:~/桌面$ source ~/.bashrc  命令 “dirname” 可在以下位置找到  * /bin/dirname  * /usr/bin/dirname 由于 /usr/bin:/bin 不在 PATH 环境变量中,故无法找到该命令。 dirname:未找到命令 命令 “lessp

basename和dirname的使用

[dirname] 手册页“Print  NAME  with  its  trailing  /component  removed; if NAME contains no /’s, output ‘.’ (meaning the current directory).”该命令可以取给定路径的目录部分(strip non-directory suffix from file name)。这个

__filename与__dirname

__dirname 是 Node.js 中的一个内置全局变量,它代表的是当前正在执行的 JavaScript 文件所在的绝对目录路径。这个变量在 Node.js 应用程序中非常有用,因为它可以帮助开发者定位到相对于当前文件的其他文件或目录的位置。 例如,在一个 Node.js 模块中,你可以这样使用 __dirname: // 假设你在 /home/user/project/app.js

vite配置别名警告‘__dirname‘ is not defined.

分析 __dirname为node环境的变量 解决 设置eslint环境配置为node env: { Node: true, es2020: true },

【cd `dirname $0`】切换到脚本所在的目录

#!/bin/bashcd `dirname $0` # 切换到脚本所在的目录cd ..cd ..read var 这样子永不迷路,完全不用担心当前cd到哪个目录了,最终都能找到正确的路径

Linux:使用libgen.h:basename,dirname

Linux:使用libgen.h:basename,dirname basename以及dirname是两个命令: [test1280@localhost ~]$ which basename/bin/basename[test1280@localhost ~]$ which dirname/bin/dirname 可以通过: man 1 basenameman 1 dirname