Shell中获取脚本的绝对路径$( cd $( dirname ${BASH_SOURCE[0]} ) 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)相关推荐
- Shell中获取脚本的绝对路径$( cd “$( dirname “${BASH_SOURCE[0]}“ )“ pwd)
文章目录 示例代码 总结 代码解释 示例代码 我们可以在bash中使用以下命令获取所执行脚本的绝对路径: #!/bin/bash DIR=$( cd "$(dirname "${B ...
- Shell中获取当前脚本的绝对路径: $( cd “$( dirname “${BASH_SOURCE[0]}“ )“ pwd)
Shell中获取当前脚本的绝对路径: $( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) 参考链 ...
- linux在shell中获取时间
linux在shell中获取时间 获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量 DATE=$(date +%Y%m%d) 有时候我们需要使用 ...
- (转)Shell中获取字符串长度的七种方法
Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...
- shell中执行脚本并显示到终端和保存到日志文件中
我们知道,在shell中执行脚本会返回一定信息到终端屏幕上 ,但是有一些特殊情况,如以下情况: 1)显示到终端中 echo "abck" 以上在手动执行脚本中是可以的,如果是编写 ...
- 在shell中获取当前机器的ip地址
在shell中获取得到当前机器的ip地址 ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print ...
- shell获取脚本本身名称_linux,shell脚本中获取脚本的名字,使用脚本的名字。
需求描述: 写shell脚本的过程中,有时会需要获取脚本的名字,比如,有的时候,脚本 中会有usage()这种函数,可能就会用到脚本的名字. 实现方法: shell脚本中,通过使用$0就可以获取到脚本 ...
- python获取耗时的shell_python获取耗时的shell_关于Linux:在shell中获取程序执行时间...
我想在Linux shell中在几个不同的条件下执行一些东西,并且能够输出每次执行的执行时间. 我知道我可以编写一个Perl或python脚本来完成这个任务,但是有没有一种方法可以在shell中完成呢 ...
- shell中获取时间
获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量 DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使 ...
最新文章
- python基础入门:while 循环
- spring-junit4_基于Spring的应用程序-迁移到Junit 5
- c/c++读取txt文件中指定行的内容_和尧名大叔一起从0开始学Python编程-简单读写文件
- c语言float二进制输出代码_C语言学习笔记——学前知识概述
- iOS中UINavigationController控制器使用详解
- Android的系统架构
- 后台开发必备的那些Linux命令
- php百度知道小偷,随风百度知道(小偷采集) php版 v2.0.0X
- 闲鱼SPU体系构建的背后
- GNN从入门到精通 -- Graph Embedding (2)
- pdf翻译,两款pdf文件翻译软件,支持linux/ubuntu,window,mac下使用
- Spring源码系列(十三)——Spring源码编译及详细注解
- ye graph editor安装
- IDEA Java代码注释规范
- [转帖]改变无数人人生的32句实话[ChaseDream论坛]
- 如何在idea中使用Mysql
- WIN10蓝屏崩溃原因查找
- 使用ARD远程管理用户的Parental Control和Dock
- (unsigned char *)a与*(unsigned char *)a的含义
- Cocos Creator-5.物理与碰撞系统
热门文章
- java虚拟机 (JVM)
- 湖南大学 实验八 青蛙与蚊子
- SmartGit软甲提交代码时报: Commit: Not all refs have been pushed.的解决方法
- VS Test: No connection could be made because the target machine actively refused it 127.0.0.1:6910
- 2022-04-13 工作记录--LayUI-动态渲染数据表格的表头参数
- 转速/线速度/角速度计算FC
- GPRC 和RPC 有什么区别?GPRC和RPC的区别是什么?
- MySQL DBA技术难度低为什么工资比Oracle高?
- android 一键锁屏实现
- 号外!5G+X联创营华为云官网上线,5G 创业春天来了!