Хотя цикл прерывается после первой итерации - PullRequest
0 голосов
/ 11 октября 2018

Это мой скрипт, который разбивается на while loop после первой итерации

while IFS='' read -r line
do
cd /root/clair-container-scan
image_name=$(echo $line|cut -d '/' -f2|cut -d ':' -f1)
sh clair-container-scan.sh $line >> /root/clair-container-scan/$image_name.log
done < "$1"

$ 1 относится к файлу, который имеет следующие входные данные:

kardasz/mysql:latest
visualops/httpd:latest

Mostиз них это относится к проблеме STDOUT, поэтому уже пытались изменить перенаправление >> на ">", "&>", "&>>", но все еще не работали.

Команда, перенаправляющая вывод в файл .log, будет выполняться более минуты.Иногда он даже не запускает первую итерацию и просто выдаст пустой вывод.

Может кто-нибудь помочь мне понять, что не так в сценарии?

1 Ответ

0 голосов
/ 12 ноября 2018

Устранена проблема с использованием цикла for и чтения массива.Проблема на самом деле со строками цикла чтения, в котором есть специальные символы, такие как "/:"

filename=$1
readarray images < "$filename"
for line in "${images[@]}"
do
echo ""
done
...