2016-09-01 3 views
-1

мне было интересно, есть ли способ, что я могу войтиSTDIN файл Pipe в цикл

./myscript.sh FILENAME 

и файл будет ссылаться на

for a in $(cat FILENAME) ; do 
done 

ответ

0

Вызов сценарий с:

./myscript.sh babynames 

Вы можете обрабатывать каждую строку своего файла с помощью read:

while read -r line; do 
    echo "$line" 
done < "$1" 
+0

, поэтому я хотел бы, чтобы каждый раз запускать сценарий, я должен сказать ему, какой файл использовать. И.Е. как сделать так, чтобы файл не был закодирован в сценарий. вместо этого я должен запустить его, как $ bash myscript.sh | babyname – Jolan

+0

Обновлен мой ответ. – SLePort

+0

Сначала я расскажу, что делает $ 1 – Jolan

0
$ cat > myscript.sh      # create myscript.sh 
for i in "$(cat $1)" ; do echo "$i" ; done # in the end CTRL-d 
$ cat > babynames       # create babynames 
primo 
secundo         # in the end CTRL-d 
$ bash myscript.sh babynames    # execute the script with babynames as parameter 
primo 
secundo 
+0

так давайте скажем, что мой скрипт называется myscript, а плитка, которую я хотел бы вводить и читать по строкам, - это babynames, как бы я структурировал это? Thx sorry Я очень новичок в этом – Jolan

+0

Извините, что не делает то, что мне нужно. Infact все, что было написано над моим скриптом – Jolan

+0

Пожалуйста, в вашем вопросе более конкретно о том, что является входным и ожидаемым выходом. Кроме того, подумайте, прежде чем действовать, 'create myscript.sh' означает только то, что он говорит. Извините за свой сценарий. –

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