文章目录

  • 示例代码
  • 代码解释
  • 总结
示例代码

我们可以在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)

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

  3. linux在shell中获取时间

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

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

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

  5. shell中执行脚本并显示到终端和保存到日志文件中

    我们知道,在shell中执行脚本会返回一定信息到终端屏幕上 ,但是有一些特殊情况,如以下情况: 1)显示到终端中 echo  "abck" 以上在手动执行脚本中是可以的,如果是编写 ...

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

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

  7. shell获取脚本本身名称_linux,shell脚本中获取脚本的名字,使用脚本的名字。

    需求描述: 写shell脚本的过程中,有时会需要获取脚本的名字,比如,有的时候,脚本 中会有usage()这种函数,可能就会用到脚本的名字. 实现方法: shell脚本中,通过使用$0就可以获取到脚本 ...

  8. python获取耗时的shell_python获取耗时的shell_关于Linux:在shell中获取程序执行时间...

    我想在Linux shell中在几个不同的条件下执行一些东西,并且能够输出每次执行的执行时间. 我知道我可以编写一个Perl或python脚本来完成这个任务,但是有没有一种方法可以在shell中完成呢 ...

  9. shell中获取时间

    获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量 DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使 ...

最新文章

  1. python基础入门:while 循环
  2. spring-junit4_基于Spring的应用程序-迁移到Junit 5
  3. c/c++读取txt文件中指定行的内容_和尧名大叔一起从0开始学Python编程-简单读写文件
  4. c语言float二进制输出代码_C语言学习笔记——学前知识概述
  5. iOS中UINavigationController控制器使用详解
  6. Android的系统架构
  7. 后台开发必备的那些Linux命令
  8. php百度知道小偷,随风百度知道(小偷采集) php版 v2.0.0X
  9. 闲鱼SPU体系构建的背后
  10. GNN从入门到精通 -- Graph Embedding (2)
  11. pdf翻译,两款pdf文件翻译软件,支持linux/ubuntu,window,mac下使用
  12. Spring源码系列(十三)——Spring源码编译及详细注解
  13. ye graph editor安装
  14. IDEA Java代码注释规范
  15. [转帖]改变无数人人生的32句实话[ChaseDream论坛]
  16. 如何在idea中使用Mysql
  17. WIN10蓝屏崩溃原因查找
  18. 使用ARD远程管理用户的Parental Control和Dock
  19. (unsigned char *)a与*(unsigned char *)a的含义
  20. Cocos Creator-5.物理与碰撞系统

热门文章

  1. java虚拟机 (JVM)
  2. 湖南大学 实验八 青蛙与蚊子
  3. SmartGit软甲提交代码时报: Commit: Not all refs have been pushed.的解决方法
  4. VS Test: No connection could be made because the target machine actively refused it 127.0.0.1:6910
  5. 2022-04-13 工作记录--LayUI-动态渲染数据表格的表头参数
  6. 转速/线速度/角速度计算FC
  7. GPRC 和RPC 有什么区别?GPRC和RPC的区别是什么?
  8. MySQL DBA技术难度低为什么工资比Oracle高?
  9. android 一键锁屏实现
  10. 号外!5G+X联创营华为云官网上线,5G 创业春天来了!