我有这个脚本
$AIRLINECODE=xx
for i in $AIRLINECODE_response_*; do
echo $i
done
打印目录中的所有文件,即使它们的名称完全不同。
如何限制for只能找到具有所需模式的文件?
答案 0 :(得分:2)
这是因为你使用变量名的方式。
当您使用$AIRLINECODE_response_
时,bash会将其解释为AIRLINECODE_response_
作为变量的名称。要使其工作,请使用花括号来指定名称:{AIRLINECODE}_response_
。
所有在一起:
AIRLINECODE=xx
for i in ${AIRLINECODE}_response_*; do
echo "$i"
done
另请注意,您需要使用AIRLINECODE=xx
设置变量。使用$AIRLINECODE=xx
是错误的,因为变量的设置没有前导$
。