【问题标题】:Export result from FIND command to variable value in linux shell script?将 FIND 命令的结果导出到 linux shell 脚本中的变量值?
【发布时间】:2013-12-14 02:59:52
【问题描述】:

我尝试完成一个 shell 脚本,但我不知道如何完成最后一步,这可能是最简单的一步。

这是通过 find 命令为变量附加值。

例如,如果我执行:

find -type f -iname *test.tdf*

我将在示例中得到输出:

/root/Desktop/test.tdf

现在,我需要一种方法将该值附加到例如:

export PATH_TO_TEST_TDF_FILE=/root/Desktop/test.tdf

但是现在,问题是该文件可能不在那里,所以我必须将它分配给 find 的结果。

怎么做?

【问题讨论】:

    标签: linux bash shell variables


    【解决方案1】:

    如果您的 find 调用按照您显示的内容输出单个文件,command substitution 应该可以解决问题

    export PATH_TO_TEST_TDF_FILE="$(find . -type f -iname '*test.tdf*')"
    

    或者,正如BroSlow 指出的那样,

    export PATH_TO_TEST_TDF_FILE="$(find . -type f -iname '*test.tdf*' -print -quit)"
    

    在第一个文件后让find退出

    【讨论】:

    • @1_CR 您可能想在此处添加-print -quit,所以它会在找到一个后停止,因为否则行为没有意义。
    【解决方案2】:

    应该是 PATH_TO_TEST_TDF_FILE="$(find -type f -iname test.tdf)" 但可能效果不太好,因为 find 大多数时候会返回多个文件。

    专业提示:除非另有证明,否则应假定 find 的结果不适合变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 2014-02-17
      • 2013-12-13
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 2016-07-07
      相关资源
      最近更新 更多