欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux中的cd "$(dirname "$0")"/是什么意思呢 美元符 小括号 反引号 有大用 有大大用

linux中的cd "$(dirname "$0")"/是什么意思呢     

2个回答     
可靠的梦想之星             
科技发烧友            


             
cd :切换文2113

$: 美元符加小括号  $(命令) 返回该命令的5261结果,,,,,,,反引号  `命令` 也是返回该命令的5261结果  

XX=(aa  bb cc)  表示XX直接为一个数组       


dirname :用4102于取指定路径所在的1653录 ,如 dirname /home/ikidou 结果为 /home
$0: 表示当前动行的命令名,一般用于shell 脚本中

cd "$(dirname "$0")"/  为【 切换到 脚本 所在的目录】可参考《Linux就该这么学》了解更多Linux知识。

应该使用  cd $(dirname $0) ,即不用双引号也可以吧


怪盗kidou

                 
$0 表示当前动行的bai命令du名,一般用于shell 脚本中

dirname 用于取zhi指定路径所在的dao录 ,如 dirname /home/ikidou 结果为 /home
cd 为切换文件夹
$(命令) 返回该命令的结果 ,,,,,,  `命令`  也是返回命令的执行结果
所以结合以上分析,结果为【 切换到 脚本 所在的目录】
追问
当前动行  什么意思呢
                           
追答
是“运行”,不好意思,打错了,$0 一般用在shell脚本中,如果你直接在终端中敲 echo $0 的话和 echo $SHELL 是一样的结果,因为不是脚本的话,正在运行的就是shell(bash,zsh之类的),但在脚本中不能使用echo $SHELL 代替 echo $0。
                           
 本回答被网友采纳

来自  https://zhidao.baidu.com/question/712827456804604325.html



$(dirname $0)


这个命令通常写在脚本文件里,他返回这个脚本文件放置的目录。通常在脚本中通过该命令来定位所要运行程序的相对位置(这样脚本的可移植性就提高了,扔到任何一台服务器,(如果是部署脚本)都可以执行)。

举一个例子:

  1. LOGFILE=$(dirname $0)/logs/node-zk-browser.log
  2. export ZK_HOST="localhost:2181"
  3. export ZK_BROWSER_PORT="9800"
  4. nohup node $(dirname $0)/app.js 2>&1 >>$LOGFILE &

说明:

  • $0 表示当前脚本文件名;

  • dirname 用于取指定路径所在的目录 ;如 dirname /usr/local/bin 结果为 /usr/local

  • $(命令) 返回该命令的结果

所以结合以上分析,结果为【 切换到 脚本 所在的目录】

改命令也可以写成:

`dirname $0`


来自  https://blog.csdn.net/liuxiao723846/article/details/82762684


普通分类: