bash循环处理目录中的所有文件

时间:2014-03-13 11:46:25

标签: bash loops

我有这个脚本

$AIRLINECODE=xx
for i in $AIRLINECODE_response_*; do
  echo $i
done

打印目录中的所有文件,即使它们的名称完全不同。

如何限制for只能找到具有所需模式的文件?

1 个答案:

答案 0 :(得分:2)

这是因为你使用变量名的方式。

当您使用$AIRLINECODE_response_时,bash会将其解释为AIRLINECODE_response_作为变量的名称。要使其工作,请使用花括号来指定名称:{AIRLINECODE}_response_

所有在一起:

AIRLINECODE=xx
for i in ${AIRLINECODE}_response_*; do
  echo "$i"
done

另请注意,您需要使用AIRLINECODE=xx设置变量。使用$AIRLINECODE=xx是错误的,因为变量的设置没有前导$