setenv 在 tcsh 中不起作用

setenv 在 tcsh 中不起作用

我正在尝试在我的全新 CentO 上安装一个程序。安装需要setenv,这显然不起作用,即使在 tcsh shell 中也是如此。

谁能给我一些建议吗?

[Anna@anna xd-demo] ./setup.csh

Configuring shell for the XD2006 :
./setup.csh: line 7: setenv: command not found
./setup.csh: line 8: setenv: command not found
./setup.csh: line 9: setenv: command not found
./setup.csh: line 10: setenv: command not found
./setup.csh: line 11: syntax error near unexpected token `('
./setup.csh: line 11: `set path=( $XD_ROOT/bin $XD_ROOT/lib/xd $XD_ROOT/lib/xdgraph $path )'
[Anna@anna xd-demo]$ echo $shell
/bin/tcsh

答案1

该脚本实际上并未由 tcsh 执行。您从 tcsh 运行了该命令./setup.csh,但这是一个单独的命令,在其自己的进程中执行。从您所显示的情况来看,没有理由认为该脚本将在 tcsh 中执行。setenv找不到该命令,因为某些不同的解释器正在执行该脚本。作为进一步的证据,错误消息与 bash、dash 和 ksh 的错误消息格式一致,但与 tcsh 的错误消息格式不一致。

这是脚本中的一个错误。它应该以舍邦指示脚本是为哪个解释器(shell)设计的行。 tcsh 脚本应以以下行开头

#!/usr/bin/env tcsh

添加此行(它必须是第一行;请注意,该文件不能有 Windows 行结尾,因此如果您使用 Windows 编辑器,或者最好使用 Linux 编辑器,请小心)。或者,如果您不想编辑该文件,可以显式调用 tcsh:

tcsh ./setup.csh

您可以从任何 shell 执行此操作,如果您不想,则不必交互使用 tcsh。

相关内容