我如何使用前一个命令的输出?

我如何使用前一个命令的输出?

我试图删除带有.class扩展名的文件夹中的所有文件,因此我编写了一个小型 shell 脚本。有人能告诉我为什么它不起作用并为我的问题提供解决方案吗?

剧本:

#!/bin/bash

ls | grep .class  
for i in $*
do    
rm $i
done

答案1

首先,要删除所有带有.class扩展名的文件,您只需要:

rm *.class

无论如何,作为一般规则,您真的不应该尝试解析的输出ls它会失败适用于几乎任何奇怪的文件名。

供将来参考,要迭代命令的结果,请使用循环while。例如:

command | while read i; do rm "$i"; done

相关内容