我在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
Run Code Online (Sandbox Code Playgroud)
然后使用"wish"解释器启动我的工具:
/abc/software/new2015/GE/tcl_tk/bin/wish mytool.tk
Run Code Online (Sandbox Code Playgroud)
为了使它易于使用,我想设计一个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 $@
Run Code Online (Sandbox Code Playgroud)
然后我需要运行:
./abc_wish mytool.tk
Run Code Online (Sandbox Code Playgroud)
但错误消息显示找不到setenv命令!我对这样的系统问题全新,需要一些关于这些东西的帮助.希望我已经清楚地表明了这个问题.
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 "$@"
Run Code Online (Sandbox Code Playgroud)
您还应该$@引用,以确保正确重新引用扩展.