Unix 我可以在同一个脚本中获得ksh和expect吗?
我试图在同一个脚本中使用ksh和expect命令设置的环境变量。然而,如果我试图同时获取这两种资源,它就不起作用了。有没有办法在同一个脚本中获取ksh和expect的源代码?在Korn shell中,您可以在另一个脚本中添加点,例如:Unix 我可以在同一个脚本中获得ksh和expect吗?,unix,ksh,expect,Unix,Ksh,Expect,我试图在同一个脚本中使用ksh和expect命令设置的环境变量。然而,如果我试图同时获取这两种资源,它就不起作用了。有没有办法在同一个脚本中获取ksh和expect的源代码?在Korn shell中,您可以在另一个脚本中添加点,例如: . ${other_script} 这将在与父脚本相同的进程中运行。另一个脚本可以看到父脚本中定义的任何变量。如果您想使用子shell(运行外部命令),则需要首先导出任何变量 如果希望引用expect脚本中的环境变量(由在子shell中运行expect的ks
. ${other_script}
这将在与父脚本相同的进程中运行。另一个脚本可以看到父脚本中定义的任何变量。如果您想使用子shell(运行外部命令),则需要首先导出任何变量
如果希望引用expect脚本中的环境变量(由在子shell中运行expect的ksh脚本导出的变量),则expect脚本需要引用全局数组env
。例如,如果您的ksh脚本导出MYPATH变量,则expect可能引用$env(MYPATH)
执行以下操作
#!/usr/bin/ksh
. /path/to/ksh_stuff.sh
export FOO=bar
# other ksh stuff
expect <<'END_EXPECT'
source /path/to/expect_stuff.exp
send_user "FOO is $env(FOO)\n"
# other expect stuff
END_EXPECT
#/usr/bin/ksh
. /路径/to/ksh_stuff.sh
导出FOO=bar
#其他ksh材料
期望,但是其他脚本也会在KSH中运行,不是吗?这与目的背道而驰,因为第二个脚本在获取KSH时无法识别EXPECT命令问题是我需要在EXPECT脚本中使用KSH中设置的环境变量。我可以将这些作为参数传递吗?更新了参考答案expect$env Array请看一看,以帮助解释您的问题