在shell 脚本中获取该脚本的所在目录
场景应该是这样的:
命令行获取文件所在路径,怎么办?
- cd 到文件目录,2 pwd 输出。
那么在 .sh 脚本执行时,怎么获取到该脚本的绝对路径呢?
使用dirname
和{BASH_SOURCE[0]}
dirname
:获取指定路径的目录部分。
(base) ➜ Downloads dirname /Users/mac/Downloads/demo.sh
/Users/mac/Downloads
{BASH_SOURCE[0]}
会拿到该脚本执行是使用的 path。
#!/bin/bashecho ${BASH_SOURCE[0]}
echo $0
(base) ➜ Downloads sh /Users/mac/Downloads/demo.sh
/Users/mac/Downloads/demo.sh
/Users/mac/Downloads/demo.sh
那怎么在脚本执行时,在里面获取到脚本所在的目录?
思路:
- 获取到脚本文件的路径。
- 获取到脚本文件所在的目录。
- cd 进入,再 pwd。
最终的命令:
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
测试:
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo $DIR
结果:
(base) ➜ Downloads sh demo.sh
/Users/mac/Downloads
在shell 脚本中获取该脚本的所在目录相关推荐
- shell脚本中获取当前所在目录地址
shell脚本中获取当前所在目录如下 #!/bin/bashwork_path=$(dirname $0) cd ${work_path} work_path=$(pwd) cd ${work_pat ...
- Shell脚本中获取命令运行结果、特殊变量使用、条件判断等常用操作
文章目录 前言 获取命令执行结果 使用反引号 `` ` ``command `` ` ``来执行命令 使用括号组合 $(command) 来执行命令 两种方式的区别 特殊变量使用 $0 $1 $2 . ...
- Shell中获取当前脚本的绝对路径: $( cd “$( dirname “${BASH_SOURCE[0]}“ )“ pwd)
Shell中获取当前脚本的绝对路径: $( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) 参考链 ...
- linux shell 获取当月第一天与最后一天,扣丁学堂Linux培训简述在shell脚本中获取上个月最后一天的日期方法...
本篇文章扣丁学堂Linux培训小编给读者们分享一下在shell脚本中获取上个月最后一天的日期方法,对Linux开发感兴趣的小伙伴就随小编来了解一下吧,希望对小伙伴们有所帮助. Linux中用date命 ...
- centos7 shell 获取ip_Linux Shell脚本中获取本机ip地址方法
方法一:ifconfig -a ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "a ...
- Shell脚本中获取本机ip地址,Linux获取本地ip地址
在 Shell 脚本中获取本机 IP 地址可以通过多种方式实现,这里介绍三种常用的方法: 1. 使用 ifconfig 命令获取本机 IP 地址 ifconfig 命令可以获取本机网卡的配置信息,包括 ...
- java jsch shell_仅在JSch shell通道中获取特定命令的输出
我试图在使用JSch的java中获取shell脚本的输出.执行sudo管理命令并获取脚本的输出.仅在JSch shell通道中获取特定命令的输出 Properties prop = new Prope ...
- .Net 中 获取当前应用程序启动目录的几个方法和Path.Combine 细节
一. .Net 中 获取当前应用程序启动目录的几个方法 AppDomain.CurrentDomain.BaseDirectory 代表的是程序集所在的目录,它具有读取和写入的属性. AppDoma ...
- shell获取脚本本身名称_linux,shell脚本中获取脚本的名字,使用脚本的名字。
需求描述: 写shell脚本的过程中,有时会需要获取脚本的名字,比如,有的时候,脚本 中会有usage()这种函数,可能就会用到脚本的名字. 实现方法: shell脚本中,通过使用$0就可以获取到脚本 ...
最新文章
- c 初始化char**_CC++|指针详述及实例分析
- HBase简单代码实例(Java)
- mysql递归查询所有上下节点_【转】MySQL之Spider存储引擎原理详解
- 多模光纤收发器的应用领域及适用领域
- dfa2.java 原理_DFA编程练习2
- 1 数列分块入门_怎样用通俗易懂的语言让小学 OIer 理解并能初步运用线段树?...
- 谈谈数据模型、领域模型、视图模型和命令模型
- 最小二乘方法和RANSAC的改进算法PROSAC和LMEDS
- vector理解一波~~~
- Excel文件计算机一级,计算机一级excel操作练习题文件
- nmap命令的安装及用法
- 锋利的jQuery--Ajax(读书笔记四)
- CefSharp如何获取请求响应头Headers中的数据
- 使用get传参的时候,参数在后头获取不到或者出现别的错误。
- 博弈论(Game Theory)入门——完全信息静态博弈
- jsp+servlet搭建在线投票问卷系统
- Linux配置SVN 服务端
- 【XJTUSE 计算机组成与结构笔记】第十三章 精简指令集计算机
- html源码里面写current,HTML Video currentTime用法及代码示例
- 磁力机航向角计算与补偿