如何将变量从一个函数传递到另一个函数

如何将变量从一个函数传递到另一个函数
updateEnvironmentField() {

          linewithoutquotes=`echo $LINE | tr -d '"'`
             b()
}

我想将名为 $linewithoutquotes 的变量传递给另一个名为 b() 的方法,该方法是从 updateEnvironmentField() 方法调用的。如何用shell脚本实现上述需求

答案1

b () {
    arg=$1
    # more code here
}

updateEnvironmentField () {
    linewithoutquotes=`echo $LINE | tr -d '"'`
    b "$linewithoutquotes"
}

在这里,我们将b命令替换的结果作为字符串进行调用。该b函数接收变量中的字符串arg

请注意,您将需要使用printfin 代替echo,并且需要正确引用$LINE扩展,以便空格和通配字符等不会弄乱您的数据(我还将反引号更改为,$(...)因为这样表现得更好):

updateEnvironmentField () {
    linewithoutquotes=$( printf '%s\n' "$LINE" | tr -d '"' )
    b "$linewithoutquotes"
}

如果您使用的是bashshell,则可以使用其${variable//pattern}参数替换来删除双引号,

updateEnvironmentField () {
    linewithoutquotes=${LINE//\"}
    b "$linewithoutquotes"
}

要不就

updateEnvironmentField () {
    b "${LINE//\"}"
}

有关的:

相关内容