2014-09-10 6 views
1

Я изучаю гибкость и бизон и удар.Сценарий Bash для запуска нескольких файлов подряд

Я создал exe-файл под названием compiler

У меня есть куча файлов .txt, чтобы проверить несколько раз.

Как я могу написать скрипт, который будет работать:

./compiler test1.txt 
./compiler test2.txt 
...etc 

Я не хочу, чтобы пройти их все сразу в качестве аргументов. Просто запустите их последовательно.

Я написал script.sh в том же каталоге, я работаю с файлами компилятора и тестов:

#!/bin/bash 

clear 
./compiler test9.txt 
./compiler test8.txt 
./compiler test7.txt 
./compiler test6.txt 
./compiler test5.txt 
./compiler test4.txt 
./compiler test3.txt 
./compiler test2.txt 
./compiler text1.txt 

Тогда я сделал chmod u+x script.sh и попытался script.sh

Не работает.

+0

Вы уверены, что 'bash' в'/bin'? Каков результат 'type bash'? Кроме того, работает 'bash script.sh'? –

+2

Что происходит, когда вы запускаете его? –

+0

@AndrewBarber: он просто сказал, что команда не найдена. Ответ Этана Рейснера работал. – MayNotBe

ответ

1

Для запуска файла из текущего каталога вам понадобится ./script.sh (так же, как у вас есть ./compiler).

Сказано, что сценарий должен хорошо работать для того, что он делает.

Но вы можете сделать то же самое с петлей, а также:

for file in test*.txt; do 
    ./compiler "$file" 
done 
+0

Я бы предпочел «найти. -name "test * .txt" -exec ./compiler {} \; ' –

+0

@ElliottFrisch Действителен, но может выполнять значительные объемы дополнительной работы (в случае наличия подкаталогов) для конкретной задачи. –

+0

Существует, конечно, более чем один способ сделать это. –

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