Скрипт Bash пока цикл останавливается после прочтения первой строки текстового файла - PullRequest
0 голосов
/ 03 марта 2019

Цель:

У меня есть скрипт bash для:

  • чтения строк в файле;
  • установки значения каждой строки в качестве параметра;и
  • используйте параметр как часть пути.

Скрипт:

fileName='s3Path.txt'
while IFS='' read -r line || [[ "$line" ]]; do

        printerType=$line
        gcPath=s3://gc-reporting-pud-production/structured_printer_log_files/
        gcFullPath=$gcPath$printerType
        echo $gcFullPath
done < $fileName

Проблема:

Цикл останавливается послепервая строка в файле.Как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Я не могу воспроизвести вашу проблему.Для меня цикл повторяется по всем строкам в некотором тестовом файле.

Вы можете попробовать следующий скрипт, который в основном делает то же самое, что и ваш цикл.Я также ожидал бы, что этот альтернативный скрипт будет более эффективным, чем ваш цикл.

mapfile -t lines < s3Path.txt
printf 's3://gc-reporting-pud-production/structured_printer_log_files/%s\n' "${lines[@]}"
0 голосов
/ 03 марта 2019

При написании bash script сценарий должен начинаться с:

#!/bin/bash

Чтобы явно указать использование bash (оно может работать без него, если вы используете bash в качестве оболочки).

Я выполнил ваш сценарий, и он хорошо работал с моими входными данными.

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

  • Отсутствие #!/bin/bash в первомстрока скрипта
  • Проблема с вашим входным файлом
...