将结果从 FIND 命令导出到 linux shell 脚本中的变量值?

bla*_*cat 2 linux variables bash shell

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

那是将值附加到 find 命令中的变量。

例如,如果我执行:

find -type f -iname *test.tdf*
Run Code Online (Sandbox Code Playgroud)

我将在示例中获得输出:

/root/Desktop/test.tdf
Run Code Online (Sandbox Code Playgroud)

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

export PATH_TO_TEST_TDF_FILE=/root/Desktop/test.tdf
Run Code Online (Sandbox Code Playgroud)

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

如何?

iru*_*var 5

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

export PATH_TO_TEST_TDF_FILE="$(find . -type f -iname '*test.tdf*')"
Run Code Online (Sandbox Code Playgroud)

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

export PATH_TO_TEST_TDF_FILE="$(find . -type f -iname '*test.tdf*' -print -quit)"
Run Code Online (Sandbox Code Playgroud)

已经find第一个文件后退出

  • @1_CR 您可能想在此处添加 `-print` `-quit`,因此它会在找到一个后停止,因为否则行为没有意义。 (2认同)