Glomming 制作一个 sh 脚本

Glomming to make a sh script

这是愚蠢的做法吗?

我问是因为 ls -1 中清除的文件有特殊字符,如括号、反引号等。我的编辑器宏用双引号将每个文件名括起来,但这还不够。

有没有更正的做法呢?我应该在脚本本身中寻找吗?我喜欢使用编辑步骤来捕捉错误,但我可能只是固执,

(上下文:我有数以千计的 MP3 文件,我想 运行 每个文件都有一个程序来获得它的速度。)

这里有什么聪明的做法?

只需在命令行上执行此操作

for file in *; do mycommand "$file"; done

用你想要的任何命令替换 mycommand 运行。

更多信息:http://zsh.sourceforge.net/Doc/Release/Shell-Grammar.html

我的回答肯定是“是”。

文件名可以包含特殊字符,如果存在这些字符,即使是最聪明的文本解析算法也会误入歧途。不是从 ls 获取要处理的文件列表,而是有几个不需要解析的替代方案(如上面的评论和答案所示)。因此,按照我的问题中的描述将 ls 输出通过管道传输到文件是愚蠢的!