Как получить глобальную переменную, которая была прочитана из списка с именами файлов в bash? - PullRequest
0 голосов
/ 03 апреля 2019

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

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

FILES="files.txt"

for f in $FILES
do
  echo "Processing $f file..."
  # take action on each file. $f store current file name
  cat $f
done

Ответы [ 3 ]

1 голос
/ 03 апреля 2019

Я предполагаю, files.txt это список файлов классов, один класс на строку?

while read class
do : whatver you need with $class
done < files.txt

Если у вас более одного файла классов, используйте массив.
Не делайте все это заглавными буквами.

file_list=( files.txt other.txt ) # put several as needed
for f in "${file_list[@]}" # use proper quoting
do : processing $f # set -x for these to log to stderr
   while read class
   do : whatver you need with $class
   done < "$f"
done
0 голосов
/ 03 апреля 2019

Пример 1

FILES="files.txt" 
cat $FILES | while read class
do
   echo $class  # Do something with $class
done

Пример 2, прокомментированный Полом Ходжесом

FILES="files.txt"
while read class
do
   echo $class  # Do something with $class
done < $FILES
0 голосов
/ 03 апреля 2019

Предполагая, что каждая строка в ваших файлах содержит только имя класса, это должно сделать это:

for f in $FILES
do
  echo "Processing $f file..."
  while read class
  do 
    <something with "$class" >
  done < $f
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...