linux如何使用动态变量
linux how to use dynamic variables
我制作了一个 shell 脚本来进行一些计算。
用户输入 2 个数字:
第一个数字是月份(如果需要的日期是 2010 年 2 月,例如他输入 2)
第二个数字是年份(如果所需日期是 2010 年 2 月,例如他输入 2010)
然后我的脚本将计算从 2000 年 1 月的每一天到用户使用以下代码输入的日期所经过的天数。
编辑(我的代码中有一些愚蠢的语法错误)
a=$(echo "(14-)/12" | bc)
y=$(echo " + 4800 - $a" | bc)
m=$(echo "12 * $a - 3 + " | bc)
jdn=$(echo "dd + ((153 * $m +2)/5) + (365 * $y) + ($y/4) - ($y/100) + ($y/400) - 32045" | bc)
因为一个月有 31 天(是的,在我的脚本中,我只是假设每个月有 31 天)我最后一行代码中的 "dd" 变量将更改 31 次。
我想知道如何在不复制粘贴公式 31 次每次更改代码的情况下做到这一点。
可能是这样的:
a=$((14-mm)/12 | bc)
y=$(yyyy + 4800 - $a | bc)
m=$(12 * $a - 3 + mm)
for dd in $(seq 1 31);
do
jdn=($dd + (153 * $m +2)/5 + 365 * $y + $y/4 - $y/100 + $y/400 - 32045)
done
我制作了一个 shell 脚本来进行一些计算。 用户输入 2 个数字: 第一个数字是月份(如果需要的日期是 2010 年 2 月,例如他输入 2) 第二个数字是年份(如果所需日期是 2010 年 2 月,例如他输入 2010)
然后我的脚本将计算从 2000 年 1 月的每一天到用户使用以下代码输入的日期所经过的天数。
编辑(我的代码中有一些愚蠢的语法错误)
a=$(echo "(14-)/12" | bc)
y=$(echo " + 4800 - $a" | bc)
m=$(echo "12 * $a - 3 + " | bc)
jdn=$(echo "dd + ((153 * $m +2)/5) + (365 * $y) + ($y/4) - ($y/100) + ($y/400) - 32045" | bc)
因为一个月有 31 天(是的,在我的脚本中,我只是假设每个月有 31 天)我最后一行代码中的 "dd" 变量将更改 31 次。
我想知道如何在不复制粘贴公式 31 次每次更改代码的情况下做到这一点。
可能是这样的:
a=$((14-mm)/12 | bc)
y=$(yyyy + 4800 - $a | bc)
m=$(12 * $a - 3 + mm)
for dd in $(seq 1 31);
do
jdn=($dd + (153 * $m +2)/5 + 365 * $y + $y/4 - $y/100 + $y/400 - 32045)
done