gpt4 book ai didi

linux - 如何从变量读取链接路径?

转载 作者:太空狗 更新时间:2023-10-29 11:33:08 25 4
gpt4 key购买 nike

这总是什么都不返回:readlink $Somevar。我可以有 "${Somevar}""$Somevar"$Somevar${Somevar} - 没有区别。我一直在打印 Somevar 并且我知道它具有合理的值(value)。只需在终端输入 $Somevar(一旦我回显/“调试”我的脚本以提供相对路径并中止)就可以得到绝对路径。但我需要能够获得脚本中的绝对路径!

是否可以将 readlink 与变量结合使用?坦率地说,我不知道 readlink 如何“知道”它正在传递一个变量。我认为即使在脚本中,它也会在调用 readlink 之前由 shell 扩展。我已经在终端(无脚本)中使用“~/_src”对其进行了测试。唯一有效的方法是我写的时候不加引号。但是,如果我将该值分配给一个变量,我机器上的所有其他函数都可以使用它,但 readlink。

如何获取绝对路径?我什至不在乎我是否使用 readlink。 我只想在脚本中从相对路径获取绝对路径。


更新:(Stackoverflow 评论损坏)

我标记为 Linux。我要求阅读链接,因为我也想翻译符号链接(symbolic link),但我可以在一个单独的步骤中完成。

此外,这也失败了:ABSDIR=`cd $RELDIR; pwd` 给出

bash: cd: ~/_src/: No such file or directory

(有这样一个目录,如果我在终端上输入那个确切的目录名,cd 会找到它。)我现在猜测 ~/ 被展开了由终端本身。

那么,有没有办法处理这样的路径?显然,我认为处理这些路径的所有实用程序之所以有效,只是因为终端在调用它们之前扩展了路径。

最佳答案

首先,readlink 在 Linux 或 OSX 上做了一些稍微不同的事情。用操作系统而不是 bash 标记你的问题是一个更好的主意,特别是因为 readlink 不是 bash 内置的,而是一个可执行文件。

其次,如果你想获得绝对路径,那为什么不是你的问题标题?

获取目录绝对路径的简单且便携的方法是

ABSDIR=`cd $RELDIR; pwd`

文件有点多:

ABSFILE=`cd $(dirname $RELFILE); pwd`/`basename $RELFILE`

关于linux - 如何从变量读取链接路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17518334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com