我从脚本用户那里得到一个变量名作为第一个参数,然后将所述变量的值回显到控制台:

#!/bin/bash
variablename=$1
echo "The value of $variablename is: " ${!variablename}

这很棒!

我无法使用的是,如果我想将该变量更改为用户的第二个参数的值。语法错误的示例是:
#!/bin/bash
variablename=$1
echo "The value of $variablename is: " ${!variablename}
echo "I will now try to change the value into $2."
(!variablename}=$2
# The above line generates: {!variablename}=2: command not found

换句话说:如果有可能,我如何从用户那里获得一个变量名,并同时读取(已经解决)并写入该变量?

最佳答案

在寻求帮助的几分钟后,我一下子闪了一下,我想我有一个解决方案:

#!/bin/bash
variablename=$1
echo "The value of $variablename is: " ${!variablename}
echo "I will now try to change the value into $2."
eval "$variablename=$2"
echo "Success! $variablename now has the value ${!variablename}!"

有用。有没有更好的办法?

关于bash - 获取变量名称作为输入,并使用该名称更改变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/372869/

10-12 18:11