我无法从另一个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。
在这种情况下,请你建议吗?
答案 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衍生产品使用的可源代码;有太多不同的语法。