Как я могу использовать вывод предыдущей команды?

Я пытался удалить все файлы в папку с расширением .class , поэтому я сделал небольшой скрипт оболочки. Может ли кто-нибудь сказать мне, почему он не работает и предлагает решение моей проблемы?

Сценарий:

 #!/bin/bash ls | grep .class for i in $* do rm $i done 

Прежде всего, чтобы удалить все файлы с расширением .class , вам не нужно ничего больше, чем:

 rm *.class 

В любом случае, как правило, вы действительно не должны пытаться анализировать вывод ls . Это приведет к сбою почти для любого странного имени файла.

Для дальнейшего использования для повторения результатов команды используйте цикл while. Например:

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