我在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命令!我对这样的系统问题全新,需要一些关于这些东西的帮助。希望我已经清楚地表明了这个问题。
答案 0 :(得分:6)
setenv
是csh
命令,而不是sh
命令。 bash
中的等效内容为export
:
#!/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 "$@"
您还应该引用$@
,以确保正确重新引用扩展。