我需要设置一个数组,并使用它来循环并列出文件。我从这个设置开始,它工作了。
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?