或者,有关强大的文件名处理和在 shell 脚本中传递的其他字符串的介绍性指南。
我写了一个 shell 脚本,它在大多数情况下运行良好。但它在某些输入(例如某些文件名)上窒息。
我遇到了如下问题:
hello world
,它被视为两个单独的文件hello
和world
.\[*?
,它们会被一些文本替换,这实际上是文件的名称。'
(或双引号"
),在那之后事情变得很奇怪。\
分隔符)。这是怎么回事,我该如何解决?
我正在尝试编写一个脚本来将我手动运行的两个单独的命令统一到一个单独的 bash 脚本中,然后我可以进行 cron。
第一个命令是对具有特定名称和大小的文件的简单查找
find /some/path -type f -name file.pl -size +10M
Run Code Online (Sandbox Code Playgroud)
这将生成几个匹配的文件及其完整路径。然后我手动将这些路径复制到 for 循环中作为下一个脚本的参数。
for path in /some/path/1/file.pl /some/path/2/file.pl /some/path/3/file.pl ; do perl /my/script.pl $path ; done
Run Code Online (Sandbox Code Playgroud)
似乎应该很容易将其放入单个 shell 脚本中,但发现它很困难。