Как использовать Unix для передачи всех строк в качестве параметров в скрипт - PullRequest
1 голос
/ 17 ноября 2011

У меня есть файл pids.txt, содержащий строки, например:

123
456
789

Затем я написал скрипт на Python, который что-то делает с каждой строкой.Скрипт Python запускается так:

my_script.py 123 456 789 -a "something here" -b "something else"

Я застрял в той части, где я хочу выполнить команду Unix, передавая выходные данные файла pids.txt в my_script.py.Я думаю, вы должны что-то сделать с кошкой?

(это не работает)

cat pids.txt | ./myscript.py -a "something here" -b "something else"

Есть идеи?

1 Ответ

5 голосов
/ 17 ноября 2011

Вы можете использовать конструкцию $(command) (эквивалент обратных галочек: `command`):

./myscript.py $(cat pids.txt) -a "something here" -b "something else"

Конструкция $(command) запускает команду и заменяет стандартный вывод команды , в которой находится конструкция.

Bash также предоставляет вам $(< file) конструкцию:

./myscript.py $(< pids.txt) -a "something here" -b "something else"

Читает файл pids.txt и подставляет его содержимое для конструкции $(< ...). ( Спасибо за это, идите к Гленну Джекману )

...