Linux 从shellscript获取变量值的步骤
我正在创建一些shell脚本。Linux 从shellscript获取变量值的步骤,linux,shell,unix,aix,Linux,Shell,Unix,Aix,我正在创建一些shell脚本。 script1在method1中有一个if条件 前- 我想在script2中使用var的值 script2 methodx() { foo=$var if [[ $foo = [Yy] ]] then ..... ..... elif [[ $foo = [Nn] ]] then ..... ..... else ..... fi } 这两个脚本都在另一个脚本中执行 script3 methodA
script1
在method1中有一个if条件
前-
我想在script2中使用var的值
script2
methodx()
{
foo=$var
if [[ $foo = [Yy] ]]
then
.....
.....
elif [[ $foo = [Nn] ]]
then
.....
.....
else
.....
fi
}
这两个脚本都在另一个脚本中执行
script3
methodA()
{
./script1
....
....
....
}
methodB()
{
./script2
....
....
....
}
如何从
script1
到script2
获取var的值您总是需要[[
和]
内部的空间。另外,要测试一个模式,您可以使用[[$foo=~[Nn]]]
通常,如果要将脚本打印的文本存储到标准输出,则使用
varname=$(命令参数)
看起来需要在script3的shell中定义script1中的method1
和script2中的methodx
。为此,在script3中,您需要源脚本1
和源脚本2
,而不是执行它们。要实现这一点,您可能需要对代码进行一些重构,正如我在script1和script3中看到的method1所定义的那样。正如l0b0所说,在methodA中,而不仅仅是./script1,您可以:
foo=$( ./script1 )
如果script1的输出有空格,则可能需要在其周围加引号:
foo="$( ./script1 )"
另外,为了安全起见,在method1之外声明foo,使其为全局的(这是默认设置,但看到声明的内容总是很好的。因此,在script3的顶部执行以下操作:
typeset foo
如果您可以将script1和script2合并到script3中,这将更快,而且可能更易于维护,但仍有许多次需要使用$(…)构造。在过去,这种用法将被重新使用:
foo=` ./script1 `
该语法仍然受支持。我已经编辑了上面的代码,知道它是脚本1的method1和脚本3的methodA。您能否给出一个例子,说明如何准确地获取脚本1和脚本2的源代码,正如我在回答中所写的那样:将
/script1
更改为源代码脚本1
。但是我如何才能获得从'script1'到'script2'调用的var值代码< <代码> >设置<代码> var >代码>你能举个例子吗?我是新的shell脚本。谢谢你,我会考虑的,但是你会对我的查询有什么帮助吗?
foo=` ./script1 `