【问题标题】:Accept both relative and absolute paths in a bash script接受 bash 脚本中的相对路径和绝对路径
【发布时间】:2016-01-09 15:27:32
【问题描述】:

我想制作一个同时接受相对路径和绝对路径的 bash 脚本。用第一个字符过滤会很容易,但我想知道是否有更优雅的方式。

【问题讨论】:

  • 你的问题有点含糊。您希望如何、何时、何地获取可能是相对或绝对的输入?原因是,您是否可以测试文件是否存在很重要。 (例如[ -f "$var" ])如果您在谈论位置参数,那么您可以测试存在性,然后按照 jam 的建议使用readlink -frealpath。但是,如果您不在存在测试为真的环境中,那么两者都无济于事。

标签: bash shell path relative-path absolute-path


【解决方案1】:

您可以将使用readlink 传入的所有内容转换为绝对路径?

例如假设您在 /home/foo 中,其中包含一个文件夹“bar”:

readlink -f bar -> /home/foo/bar

readlink -f /home/foo/bar -> /home/foo/bar

【讨论】:

  • 非常感谢,我不知道readlink的用法(既不是realpath)!!! (我赞成你的回答,但没有足够的声誉让它变得可见)
【解决方案2】:

使用 readlink -f 或 realpath 完全符合我的需求!

【讨论】:

    猜你喜欢
    • 2018-02-25
    • 2010-09-15
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2010-12-17
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多