如何在Unix Korn Shell中打印函数内部的参数值

时间:2017-04-27 22:08:28

标签: function shell variables unix ksh

我试图在函数中打印一个值。但它不起作用;它正在打印变量名称。这是我的代码:

#!/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!"

您知道如何在函数内打印值吗?

1 个答案:

答案 0 :(得分:6)

调用函数时,位置变量$1设置为MyVariable。

声明

eval $1="Working!"

正在创建一个名称包含在$1中的新变量。在您的情况下,MyVariable

因此,echo "$1"正确打印$1 MyVariable的值。您需要使用eval来打印新变量的值:

eval "echo \$$1"

在Unix和&amp ;;上看到这篇文章Linux Stack Exchange: