请选择 进入手机版 | 继续访问电脑版

[linux shell] Shell获取当前正在实验 脚本的绝对路径

[复制链接]
查看107 | 回复19 | 2021-9-12 16:25:02 | 显示全部楼层 |阅读模式

1. pwd下令

我们看看使用 pwd下令 能否 获取当前正在实行 脚本的绝对路径。该下令 的作用是“print name of current/working directory”,真实含义是当前工作目次 ,并不是正在实行 脚本的目次 。

  1. xiaosi@Qunar:~/company/sh$ cat pwd.sh
  2. echo `pwd`
  3. xiaosi@Qunar:~/company/sh$ sh pwd.sh
  4. /home/xiaosi/company/sh
  5. xiaosi@Qunar:~/company/sh$ cd ..
  6. xiaosi@Qunar:~/company$ sh sh/pwd.sh
  7. /home/xiaosi/company
复制代码

pwd.sh脚本中只有一句:echo `pwd`。通过在不同路径下运行脚本,sh pwd.sh得到/home/xiaosi/company/sh,然而sh sh/pwd.sh 得到/home/xiaosi/company,以是 说pwd下令 并不能得到正在实行 脚本的目次 。

2. $0

$0是Bash环境下的特别 变量,其真实含义是:Expands to the name of the shell or shell script. This is set at shell initialization.  If bash is invoked with a file of commands, $0 is set to the name of that file. If bash is started with the -c option, then $0 is set to the first argument after the string to be executed, if one is present. Otherwise, it is set to the file name used to invoke bash, as given by argument zero。

$0值与调用的方式有关:

(1)使用 一个文件调用bash,那$0的值是文件的名字

  1. xiaosi@Qunar:~/company/sh$ cat pwd.sh
  2. echo $0
  3. xiaosi@Qunar:~/company/sh$ sh pwd.sh
  4. pwd.sh
复制代码

(2)使用 -c选项启动bash,真正实行 的下令 会从一个字符串中读取,字符串后面假如 还有别的参数的话,使用 从$0开始的特别 变量引用(跟路径无关了)

(3)除此以外,$0会被设置成调用bash的谁人 文件的名字(没说是绝对路径)

3. 正解

  1. basepath=$(cd `dirname $0`; pwd)
复制代码

dirname $0,取得当前实行 的脚本文件的父目次

cd `dirname $0`,进入这个目次 (切换当前工作目次 )

pwd,表现 当前工作目次 (cd实行 后的)

到此这篇关于Shell获取当前正在实行 脚本的绝对路径的文章就先容 到这了,更多干系 Shell获取脚本绝对路径内容请搜刮 脚本之家从前 的文章或继续欣赏 下面的干系 文章盼望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar 123457549 | 2021-9-13 03:12:08 | 显示全部楼层
缺乏激情了!
回复

使用道具 举报

avatar 做农告根乎 | 2021-9-13 04:27:18 | 显示全部楼层
admin楼主给脑残下了定义!
回复

使用道具 举报

avatar 雪域蓝眸蓝nz | 2021-9-15 22:19:16 | 显示全部楼层
系统居然说我是在灌水,我有吗?
回复

使用道具 举报

avatar 春意盎然2016 | 2021-9-20 13:21:07 | 显示全部楼层
这个帖子会火的,鉴定完毕!
回复

使用道具 举报

avatar 醉生三世生d | 2021-9-22 17:01:52 | 显示全部楼层
强,我和我的小伙伴们都惊呆了!
回复

使用道具 举报

avatar 准藏智虽 | 2021-9-24 23:02:26 | 显示全部楼层
admin楼主是在找骂么?
回复

使用道具 举报

avatar 孤钓客MZ2 | 2021-9-29 19:36:01 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,运动刷步数还是免费刷的,QQ和微信都可以刷,特别好用。访问地址:http://yd.mxswl.com 猫先森网络
回复

使用道具 举报

avatar 123457124 | 2021-9-30 08:17:55 | 显示全部楼层
顶!顶!顶!
回复

使用道具 举报

avatar 我的苦恼冉 | 2021-10-6 04:41:22 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,影视频道的网站所有电影和连续剧都可以免费看的。访问地址:http://tv.mxswl.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则