<分区>
我有一个脚本,它逐行读取文件并根据读取的内容执行操作。它所做的其中一件事是通过 ssh 连接到远程服务器并获取一些信息。出于某种我完全无法理解的原因,这会停止从文件中读取行。
脚本本质上是(我已经删除了很多内容以简化问题,所以如果它看起来什么也没做,请不要担心):
cat $csv | while read line; do
shopt -s nocasematch
for j in "${file_list[@]}"; do
found=0;
for i in $(ssh some_server "ls /some_path/${line:0:1}/${line:1:1}/$line*"); do
if [[ $i =~ .*$j$ ]]; then
echo "do something";
found=1;
break;
fi;
done;
if [[ $found -ne 1 ]]; then
echo "don't have $j";
fi;
if [[ $found -ne 1 && $j == '\.pdf' ]]; then
getPDF $line ${dest};
fi;
done;
shopt -u nocasematch
done
此脚本最终仅在 csv 的第一行运行。如果我用其他任何东西替换脚本的“ssh”部分,它会在文件的所有行上一直运行。是什么赋予了?