我遇到了这个教程示例,特别是sum=$(($sum+$x$n))
行。$x$n
具体意味着什么?我想$x被引用但没有被赋值(未声明/未设置的变量),不是吗?
https://linuxhint.com/bash_eval_command/
evaltest3.sh
#!/bin/bash
# Initialize the variable $sum with the value 0
sum=0
# Declare a for loop that will iterate for 4 times
for n in {1..4}
do
# Create four variables using eval command
eval x$n=$n
# Add the values of the variable with $sum
sum=$(($sum+$x$n))
done
# Assign `echo` command with string into a variable
command="echo 'The result of the sum='"
# `eval` command print the sum value using variables
eval $command $sum
(不直接回答你的问题,但提供另一种选择)
由于bash算术允许我们提供变量而不使用参数展开语法;[Ref](即没有$
),我们可以写
for n in {1..4}; do ((sum += n)); done
优点是bash将空变量或未设置变量作为数字0处理。