gpt4 book ai didi

Bash 变量 SECONDS 是立即扩展还是延迟扩展?

转载 作者:行者123 更新时间:2023-11-29 09:50:59 25 4
gpt4 key购买 nike

如果我有一行对 $SECONDS 变量进行两次操作,那么该变量是否会保持相同的值,因为它在同一行上?

例如,考虑一个简单的行,如 echo $SECONDS $SECONDSecho $((SECONDS/60)) minutes and $((SECONDS%60)) seconds .

SECONDS 是否总是相同的值,因为它们在同一行?换句话说,它是否在该行执行之前得到扩展? $SECONDS 究竟何时展开?

最佳答案

它们在传递给 echo 之前展开,如果这是您的要求的话。但是,AFAIK 将单独评估 $SECONDS 的 2 个实例。因此,以防万一,当 seconds 刻度超过 2 次评估之间的值时,您将看到 2 个不同的值。

试试这个:

i=0;
while true; do
read a b <<< "$SECONDS $SECONDS";
((i++));
((a!=b)) && printf "Iteration %-8d : %d %d\n" $i $a $b;
done

Iteration 3517346 : 467 468
Iteration 4157710 : 488 489
Iteration 4240219 : 491 492

关于Bash 变量 SECONDS 是立即扩展还是延迟扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44252673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com