Shell中获取当前脚本的绝对路径:  $( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)

参考链接:https://www.cnblogs.com/lestatzhang/p/10611309.html

另外:获取相对路径如下 

#!/bin/bash

echo "$PWD"

$PWD是系统变量 (不需要定义)

示例代码

我们可以在bash中使用以下命令获取所执行脚本的绝对路径:

#!/bin/bash
DIR=$( cd "$(dirname "${BASH_SOURCE[0]}")" && pwd);
echo $DIR

代码解释

BASH_SOURCE[0] - 等价于 BASH_SOURCE ,取得当前执行的 shell 文件所在的路径及文件名
dirname - 去除文件名中的非目录部分,仅显示与目录有关的部分
$() - 相当于 `command`, 即获取command命令的结果
&& - 逻辑运算符号,只有当&&左边运行成功时才会运行&&右边的命令

总结

该命令获取脚本源文件的文件路径名,获取其目录部分,然后 cd 到该目录,使用 pwd 获取当前目录的完整路径,然后将这个路径的值赋给变量 DIR

例如 /tmp/test/test.sh 内容如下:

#!/bin/bashecho "${BASH_SOURCE[0]}"
echo "${BASH_SOURCE}"
echo "$(dirname "${BASH_SOURCE[0]}")"
echo "$( cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

若在当前目录 /tmp 下执行 bash ./test/test.sh ,输出为:

lestat@Lestats-MBP:/tmp$ bash ./test/test.sh
test/test.sh
test/test.sh
test
/tmp/test

Shell中获取当前脚本的绝对路径: $( cd “$( dirname “${BASH_SOURCE[0]}“ )“ pwd)相关推荐

  1. Shell中获取脚本的绝对路径$( cd “$( dirname “${BASH_SOURCE[0]}“ )“ pwd)

    文章目录 示例代码 总结 代码解释 示例代码 我们可以在bash中使用以下命令获取所执行脚本的绝对路径: #!/bin/bash DIR=$( cd "$(dirname "${B ...

  2. Shell中获取脚本的绝对路径$( cd $( dirname ${BASH_SOURCE[0]} ) pwd)

    文章目录 示例代码 代码解释 总结 示例代码 我们可以在bash中使用以下命令获取所执行脚本的绝对路径: #!/bin/bash DIR=$( cd "$(dirname "${B ...

  3. Shell中获取当前脚本路径

    第一种 DIR=$(cd $(dirname $0) && pwd ) echo $DIR 第二种 DIR2=$(cd $(dirname "${BASH_SOURCE[0] ...

  4. linux shell readlink,linux shell readlink 获取当前脚本文件绝对路径

    当前脚本绝对路径:readlink -m $0 readlink命令简介 Linux中的readlink命令用于打印解析的符号链接或规范文件名.用简单的话来说,只要我们有一个符号链接,我们就想知道它代 ...

  5. 在shell 脚本中获取该脚本的所在目录

    场景应该是这样的: 命令行获取文件所在路径,怎么办? cd 到文件目录,2 pwd 输出. 那么在 .sh 脚本执行时,怎么获取到该脚本的绝对路径呢? 使用dirname和{BASH_SOURCE[0 ...

  6. bash 获取脚本存放路径_如何获取Bash脚本自己的路径

    bash 获取脚本存放路径 Bash script may need to get its own path. In normal Bash script, $0 is the path to the ...

  7. linux在shell中获取时间

    linux在shell中获取时间 获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量 DATE=$(date +%Y%m%d) 有时候我们需要使用 ...

  8. (转)Shell中获取字符串长度的七种方法

    Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...

  9. 在shell中获取当前机器的ip地址

    在shell中获取得到当前机器的ip地址 ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print ...

最新文章

  1. 声明式事务--@EnableTransactionManagement || @Transactional
  2. 丑憨批的html实战
  3. C语言第五章实验二答案,《C语言程序设计》实验二 参考答案
  4. php异步查询数据库,php中mysql数据库异步查询实现
  5. 数据结构--链表--约瑟夫环问题(单向循环链表)
  6. 软件测试工程师阶段_软件工程测试阶段
  7. Android--快速接入微信支付
  8. 使用python通过odbc处理*.dbf数据表
  9. floyd算法 每一层循环_链接列表循环检测– Floyd的循环查找算法
  10. 元素偏移量offset的学习
  11. Go语言-switch case | switch中判断多个值、interface conversion: interface {} is float64, not int
  12. 金庸笔下武功最强的十人
  13. Java学习笔记类对象多态继承(下)
  14. QT构建编译出现错误error: undefined reference to 的解决办法
  15. CentOS: Kernel panic - not syncing: Fatal exception
  16. h5实现上下滑动切页
  17. 概率dp 期望 逆推
  18. python自动标注autocad坐标_python 可视化 二维坐标标注等等
  19. spring中读取配置文件的方式,以及配置文件如何写
  20. android之view重绘,跟着郭大侠一步步深入了解View第三篇之Android视图状态及重绘流程分析...

热门文章

  1. E. AC Challenge ACM-ICPC 2018 南京赛区网络预赛 状压dp + 枚举状态
  2. 你看到的大多数小程序,可能都在做错误的事情
  3. 学习Numpy(五)
  4. 谐振电路 - 01 介绍
  5. 0017-正方体的表面积和体积
  6. 动手学深度学习(二)——windows10系统中pytorch安装(从显卡驱动开始)
  7. 云计算开发(二) 分布式计算与分布式系统
  8. Vue项目之登录注册
  9. 再创佳绩|Google Play 2020 年度中国开发者最佳榜单!
  10. 游戏AI三大难:样本大、成本高、灵活性差