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
。
请注意,您将需要使用printf
in 代替echo
,并且需要正确引用$LINE
扩展,以便空格和通配字符等不会弄乱您的数据(我还将反引号更改为,$(...)
因为这样表现得更好):
updateEnvironmentField () {
linewithoutquotes=$( printf '%s\n' "$LINE" | tr -d '"' )
b "$linewithoutquotes"
}
如果您使用的是bash
shell,则可以使用其${variable//pattern}
参数替换来删除双引号,
updateEnvironmentField () {
linewithoutquotes=${LINE//\"}
b "$linewithoutquotes"
}
要不就
updateEnvironmentField () {
b "${LINE//\"}"
}
有关的: