2

我在 Linux 中开发了一个 Tcl/Tk 脚本工具。为了运行该工具,每次我需要在 shell 中设置这样的环境变量:

setenv LD_LIBRARY_PATH /opt/lsf/9.1/linux2.6-glibc2.3-x86_64/lib:/abc/software/new_2015/GE/tcl_tk/lib64:/abc/software/new_2015/GE/tcl_tk/lib64

然后使用“wish”解释器启动我的工具:

/abc/software/new2015/GE/tcl_tk/bin/wish mytool.tk

为了让它更易于使用,我想设计一个 shell 脚本“abc_wish”并将上面的命令放在里面:

#!/bin/sh
setenv LD_LIBRARY_PATH /opt/lsf/9.1/linux2.6-glibc2.3-x86_64/lib:/abc/software/new_2015/GE/tcl_tk/lib64:/abc/software/new_2015/GE/tcl_tk/lib64
wish="/abc/software/new2015/GE/tcl_tk/bin/wish"
exec $wish $@

然后我只需要运行:

./abc_wish mytool.tk

但错误消息显示未找到 setenv 命令!我对此类系统问题完全陌生,需要有关这些东西的帮助。希望我已经清楚地表明了这个问题。

4

1 回答 1

6

setenvcsh命令,不是sh命令。中的等价物bashexport

#!/bin/sh
export LD_LIBRARY_PATH=/opt/lsf/9.1/linux2.6-glibc2.3-x86_64/lib:/abc/software/new_2015/GE/tcl_tk/lib64:/abc/software/new_2015/GE/tcl_tk/lib64
exec wish "$@"

您还应该加上$@引号,以确保正确重新引用扩展。

于 2015-01-02T04:08:23.113 回答