While 循环在第一次迭代后中断
While loop breaks after the first iteration
这是我的脚本,在第一次迭代后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 指的是具有以下输入的文件。
kardasz/mysql:latest
visualops/httpd:latest
他们中的大多数人将此归因于 STDOUT
问题,因此已经尝试将 >>
重定向更改为“>
”、“&>
”、“&>>
" 但还是不行。
将输出重定向到 .log
文件的命令将 运行 持续一分多钟。有时它甚至不会 运行 第一次迭代,只会给出一个空输出。
有人可以帮我理解脚本中的错误吗?
已通过使用 for 循环和读取数组解决了该问题。问题实际上是 while 循环读取的行,它有像“/:”这样的特殊字符
filename=
readarray images < "$filename"
for line in "${images[@]}"
do
echo ""
done
这是我的脚本,在第一次迭代后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 指的是具有以下输入的文件。
kardasz/mysql:latest
visualops/httpd:latest
他们中的大多数人将此归因于 STDOUT
问题,因此已经尝试将 >>
重定向更改为“>
”、“&>
”、“&>>
" 但还是不行。
将输出重定向到 .log
文件的命令将 运行 持续一分多钟。有时它甚至不会 运行 第一次迭代,只会给出一个空输出。
有人可以帮我理解脚本中的错误吗?
已通过使用 for 循环和读取数组解决了该问题。问题实际上是 while 循环读取的行,它有像“/:”这样的特殊字符
filename=
readarray images < "$filename"
for line in "${images[@]}"
do
echo ""
done