Bash 条件 shell 变量

Bash conditional with shell variable

我想检查 [ -f "" ] 文件是否存在,但它不工作。该命令正在处理 [ -f "filename.xml" ].

等纯文本

我回应了 </code>,例如 <code>filename.xml。有什么想法吗?

sourcePath=/SPECIFICPATH/;
echo $sourcePath;
echo ;

find /EXAMPLEPATH -name pages -type d -execdir bash -c 'cd pages && [ -f "" ] && pwd && cp $sourcePath .' \;

我正在使用 shell 脚本块在 automator 中工作。

您正在使用 bash -c … 调用全新的 shell,因此您需要传递 </code>。与<code>$sourcePath相同,如果不导出。

find /EXAMPLEPATH -name pages -type d -execdir bash -c 'cd pages && [ -f "" ] && pwd && cp "" .' bash "" "$sourcePath" \;

(在bash -c … bash "" "$sourcePath"中,第二个bash[=16=]。)

如果将一些逻辑移至 find 命令,则不需要子 shell。

find /EXAMPLEPATH -wholename "*/pages/" -print -execdir cp "$sourcePath" . \;
  • -wholename 匹配 pages 目录中名为 </code> 的文件。</li> <li><code>-print 替换 pwd.
  • 现在可以直接调用cp了。