Запустить текстовые файлы в терминале - PullRequest
7 голосов
/ 01 июля 2011

Кто-нибудь знает, есть ли способ автоматически запустить в оболочке список команд (из текстового файла)?

Мне нужно запустить много скриптов (около 1000). Скрипты написаны на python и принимают по 2 аргумента каждый (dir_ # и sample #)

Текстовый файл, который я сделал, выглядит следующим образом ...

     python /home/name/scripts/get_info.py dir_1 sample1
     python /home/name/scripts/get_info.py dir_2 sample2
     python /home/name/scripts/get_info.py dir_3 sample3
     python /home/name/scripts/get_info.py dir_4 sample4
     ...

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

Заранее спасибо,

Peixe

Ответы [ 4 ]

20 голосов
/ 01 июля 2011

Это называется "сценарий оболочки".

Добавьте это в начало вашего файла:

#!/bin/sh

Затем выполните эту команду:

chmod +x filename

Затем выполните это как программу:

./filename

Кроме того, вы можете запустить оболочку напрямую, указав ей выполнить команды в вашем файле:

sh -e filename
4 голосов
/ 29 ноября 2017

Кроме того, вы можете запустить файл оболочки:

source filename
4 голосов
/ 01 июля 2011

Либо сделать файл исполняемым:

chmod u+x thefile
./thefile

или запустите его как аргумент sh:

sh thefile
2 голосов
/ 01 июля 2011

Вы можете написать скрипт оболочки:

#! /bin/sh

python /home/name/scripts/get_info.py dir_1 sample1
python /home/name/scripts/get_info.py dir_2 sample2
python /home/name/scripts/get_info.py dir_3 sample3
python /home/name/scripts/get_info.py dir_4 sample4
...
...