在shell脚本中使用数组元素的变量



我需要设置一个数组,并使用它来循环并列出文件。我从这个设置开始,它工作了。

file = (x1 x2 x3 x4 x5)
for var in ${file[@]}; do
echo $var
done

我需要在这些变量上添加时间戳,我尝试了几种方法,似乎都不起作用。下面是我尝试定义数组的一种方法:

today=$(date +"%Y%m%d")
file = (x1_"$today" x2_"$today" x3_"$today" x4_"$today" x5_"$today")

定义数组的最好方法是什么,其中数组元素有一个变量?

您使用"$today"的方式是正确的,没有问题。

不要在等号周围加空格。两种情况下都需要是file=(...)。赋值中不允许有空格

您可以使用Shell Check来捕获这些类型的错误。下面是它打印的内容:

file = (x1_"$today" x2_"$today" x3_"$today" x4_"$today" x5_"$today")
^-- SC2283: Remove spaces around = to assign (or use [ ] to compare, or quote '=' if literal).
^-- SC1036: '(' is invalid here. Did you forget to escape it?
^-- SC1088: Parsing stopped here. Invalid use of parentheses?

相关内容

  • 没有找到相关文章

最新更新