无法使用shell脚本访问ksh脚本中声明的变量到csh脚本

时间:2013-07-16 02:27:18

标签: shell unix scripting ksh csh

我无法从另一个c shell脚本访问KornShell(ksh)脚本中声明的变量,例如,

vi script.ksh
set MyUser=root
set MyPassword=shroot
exit

vi script.csh
. /script1.ksh
echo $MyUser
echo $MyPassword
exit

此处涉及的问题是它无法从script2.csh中的script1 .ksh访问变量MyUser和MyPassword。

在这种情况下,请你建议吗?

1 个答案:

答案 0 :(得分:0)

ksh脚本在ksh使用时未执行您认为正在执行的操作;它首先将$1设置为MyUser=root,然后设置为MyPassword=shroot

但是,当您从C shell脚本中获取它时,因为语法与C shell兼容(使用tcsh检查),您将设置两个变量。如果您从Bourne-shell衍生产品中获取脚本,那么exit脚本末尾的ksh将导致shell退出;它似乎不会导致C shell exit

所以,你得到的是一种奇怪的混合体。通常,您坚持使用一种语言并专门使用它。在需要使用其他shell的地方,您可以这样做,但只需运行为其他shell编写的脚本。您可以使用环境变量与其他脚本进行通信。您通常不会尝试编写可由C shell和Bourne-shell衍生产品使用的可源代码;有太多不同的语法。