1. $(cd `dirname $0`;pwd)与直接使用pwd的区别
区别如下:
# 显示当前敲这个命令所在的目录,以绝对路径显示。
pwd
# 显示执行的脚本所在的目录,以绝对路径显示.
$(cd `dirname $0`;pwd)
例:编写tset.sh
,脚本所在路径如下E:/Code/Shell/test.sh
# tset.sh
cur_dir=`pwd`
echo ${cur_dir}
current_dir=$(cd `dirname $0`;pwd)
echo ${current_dir}
分别在E:/Code
和E:/Code/Shell
各执行一次test.sh
,得到的结果如下:
2. $(cd `dirname $0`;pwd)的释义
- dirname $0:显示执行脚本所在的目录
- dirname是获取文件或者文件夹所在的目录
- $0为脚本名
- cd `dirname $0`:进入到执行脚本所在的目录
- ` ` 与
$()
都表示命令替换,即` `与$()
里的内容是一条命令
- ` ` 与
- pwd:显示当前工作目录(cd执行后的)
$(cd `dirname $0`;pwd)
3. $(cd `dirname $0`;pwd)的用法
因为pwd
显示的是当前敲这个命令所在的目录,所以将pwd
命令放在shell脚本中会留下坑。
如果想要获取执行脚本所在的目录,而不在执行脚本所在的目录敲pwd
命令,得到的就不是想要的结果,所以shell脚本中都使用$(cd `dirname $0`;pwd)来获取脚本所在的目录,确保无误。
例:编写tset.sh
,脚本所在路径如下E:/Code/Shell/test.sh
# tset.sh
# 脚本所在目录
current_dir=$(cd `dirname $0`;pwd)
echo ${current_dir}
# 脚本所在目录的上级目录
parent_dir=$(cd $(dirname ${current_dir});pwd)
echo ${parent_dir}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84888.html