为什么在以下bash脚本中,$ID
行中的find
在while循环的第一次迭代中没有任何值?
while read -r ID
do
echo $ID
cd "`find . -iname "*($ID)"`" # ← This is the problem line.
pwd
cd -
echo
done < IDs.csv
这是第一次迭代的痕迹
+ read -r ID
+ echo 6518
6518
++ find . -iname '*(6518)' # ← find always returns nothing first iteration.
+ cd ''
+ pwd
/home/Geremia
+ cd /home/Geremia
+ echo
但是连续的迭代工作正常:
+ read -r ID
+ echo 6556
6556
++ find . -iname '*(6556)' # ← find returns path all successive iterations.
+ cd './found/dir (6556)'
+ pwd
/home/found/dir (6556)
+ cd /home/Geremia
+ echo
即使我将6556
放在CSV文件的开头,也会发生这种情况。