我仍然是bash的新手,所以我希望有比我更多经验的人能够帮助我。 我有以下代码:
DAY1=$(date +"%d/%b/%Y")
DAY2=$(date --date="-1 days" +"%d/%b/%Y")
...
DAY14=$(date --date="-13 days" +"%d/%b/%Y")
COUNT=0
我想要完成的是将替换命令称为
$DAY($COUNT+1)
从$ DAY1到$ DAY14生成变量。这段代码显然不起作用,但我需要一些关于如何实现这一点的想法。我使用一个循环来增加COUNT变量,如下所示:
for i in $(seq 1 14); do
let COUNT+=1
done
答案 0 :(得分:1)
您可以构造变量表达式并使用 eval 来执行命令。例如:
for i in {1..14}; do
let COUNT+=1
command=echo DAY${COUNT}
eval $command
done
另一种可能更有意义的方法是使用bash数组。
答案 1 :(得分:1)
不要使用eval
;进入这是一个坏习惯。如果您不想使用数组,请使用间接参数扩展。
DAY1=$(date +"%d/%b/%Y")
DAY2=$(date --date="-1 days" +"%d/%b/%Y")
...
DAY14=$(date --date="-13 days" +"%d/%b/%Y")
COUNT=7
var="DAY$COUNT"
echo "${!var}" # Displays the value of $COUNT7