2010-04-22 2 views
4

Так я называю это PHP скрипт из командной строки:Используйте вывод команды в качестве ввода следующей команды

/usr/bin/php /var/www/bims/index.php "projects/output" 

и его выход:

file1 file2 file3 

Что я хотел бы сделать, это получить этот вывод и кормить команду «погонных», но я думаю, что им не делать это правильно:

/usr/bin/php /var/www/bims/index.php "projects/output" | rm 

Моя цель состоит в том, чтобы удалить любой файл, называет выходы PHP-скрипта. Каким должен быть правильный способ сделать это?

Спасибо!

ответ

8
/usr/bin/php /var/www/bims/index.php "projects/output" | xargs rm 
+0

, который сработал! что такое команда xargs? благодаря! – r2b2

+0

man xargs: «xargs - создавать и выполнять командные строки со стандартного ввода». Вы должны прочитать эту страницу руководства;) –

3

вы можете попробовать xargs

/usr/bin/php /var/www/bims/index.php "projects/output" | xargs rm 

или просто использовать цикл

/usr/bin/php /var/www/bims/index.php "projects/output" | while read -r out 
do 
    rm $out 
done 
2

Простейшее решение:

rm `/usr/bin/php /var/www/bims/index.php "projects/output"` 

Что между кавычку (`` ) is run and the output is passed as argument to rm`.

+1

xargs немного лучше: он может обрабатывать выходные данные, которые слишком велики для максимальной длины командной строки, запустив 'rm' более одного раза. –

+0

Я не сказал * лучше *. Я сказал * просто * :). – Felix

+1

примечание: может не работать, если скрипт Php создает файлы с пробелами. – ghostdog74

0

Я думаю, это может помочь >>

Grep -n "SearchString" имя файла | awk 'BEGIN {FS = ""}; {print $ 1}'

Смежные вопросы