Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同shell(csh和bash)上的源shell脚本_Shell - Fatal编程技术网

不同shell(csh和bash)上的源shell脚本

不同shell(csh和bash)上的源shell脚本,shell,Shell,我需要编写一个脚本,根据shell bash csh使用setenv或export设置变量 前 我知道csh和bash对于of语句有不同的语法,但是有办法解决这个问题吗 谢谢没有,但是有一个技巧可能会有所帮助 首先,用两种shell的语法编写脚本。我在这里使用csh: setenv x 1 现在您可以执行以下操作: csh -c 'source setup-env.csh;exec bash' 这将创建一个具有正确环境的C shell。在这个shell中启动BASH会将所有环境变量导出到

我需要编写一个脚本,根据shell bash csh使用setenv或export设置变量

我知道csh和bash对于of语句有不同的语法,但是有办法解决这个问题吗


谢谢

没有,但是有一个技巧可能会有所帮助

首先,用两种shell的语法编写脚本。我在这里使用csh:

 setenv x 1
现在您可以执行以下操作:

csh -c 'source setup-env.csh;exec bash'

这将创建一个具有正确环境的C shell。在这个shell中启动BASH会将所有环境变量导出到它

或者,您可以在BASH中创建函数setenv:

当然,这只适用于简单的csh脚本。

可能的副本
csh -c 'source setup-env.csh;exec bash'
setenv() {
  echo setting $1 to $2
  export $1=$2
}