Я хочу написать скрипт, который читает файл и выполняет команду для каждой строки в файле. Эта команда содержит переменную, для которой нам нужно передать каждую строку в файле.
Файл имеет только один столбец и около 500 строк.
попробуй это:
#!/bin/sh
if [ -f $1 ]; then
while read line; do
./execute.sh $line;
done < "$1"
fi
Чтобы выполнить, ./script.sh datafile.txt
Команда xargs
с параметром -I
делает именно это:
xargs -I {} yourcommand ... {} ... < yourinputfile
где ...
остальные аргументы вашей команды (если есть).
Часть {}
заменяется каждой строкой из yourinputfile
.
Ваш вопрос не ясен, но если вы хотите написать скрипт для выполнения другого файла, попробуйте следующую команду:
if [ -f /home/sepahrad/MyFile ]; then
./MyFile
fi
Когда вы выполняете ваш файл, он выполняет команды MyFile по одной. Вы должны заменить свой адрес файла вместо /home/sepahrad/MyFile.