我试图在函数中打印一个值。但它不起作用;它正在打印变量名称。这是我的代码:
#!/bin/ksh
MyVariable=""
function ValidateVariableValue
{
eval $1="Working!"
echo "$1" #Here is printing the value "MyVariable" instead of "Working!"
}
ValidateVariableValue MyVariable
echo "value is: ${MyVariable}" #Here is printing the correct value that is "Working!"
您知道如何在函数内打印值吗?
答案 0 :(得分:6)
调用函数时,位置变量$1
设置为MyVariable。
声明
eval $1="Working!"
正在创建一个名称包含在$1
中的新变量。在您的情况下,MyVariable
。
因此,echo "$1"
正确打印$1
MyVariable
的值。您需要使用eval
来打印新变量的值:
eval "echo \$$1"
在Unix和&amp ;;上看到这篇文章Linux Stack Exchange: