簡體   English   中英

在bash腳本中執行tcsh命令

[英]execute tcsh command in bash script

在bash腳本中,我需要執行此tcsh命令。 該命令在tcsh命令提示符下工作正常,但在我的bash腳本中卻無法正常工作。

eval `/app/modules/0/bin/modulecmd tcsh $variable`

我已經嘗試了幾種方法,例如添加

/usr/bin/tcsh -c eval `/app/modules/0/bin/modulecmd tcsh $variable`

但隨后卻說:沒有這樣的文件或目錄。

編輯:當前代碼:

# hook for some commands

echo 'To be sure the version that are loading exist for your platform plase use: "module aplikation load/version" instead of "module load application". A check will then be done.'
cmd=$(basename "$0") # it givs error here if i start with: tcsh -v xmodule load firefox/3.6.13     
var1=$(echo "$@" | awk '{print $2}' | cut -f1 -d"/") # Gets the application name and put it into var1
var2=$(echo "$@" | grep -o '[^/]*$')  # Gets version name and put it into var2 

if [[ $cmd = "xmodule" ]]
        then
#First if statement: checking if a spesific version of an apllication is requested.
        if  [[ ${@} =~ .*/.* && ${@} =~ ((^)|([ ]))load(($)|([ ])) ]]
        then
           if find /app/$var1 -noleaf -maxdepth 1 -type l -o -type d | grep $var2; then #matching version to symlink or dir in /app/appname/
           echo "$@"
           tcsh -c 'eval `/app/modules/0/bin/modulecmd tcsh $@`'  #execute the module command as normal if version exist
           exit $?
        else
           echo "Could not find $var1 or $var2, one of these things happend:"
           echo "$var1 was misspelled"
           echo "$var2 was misspelled"
           echo "version does exist as a module but not for your platform (see module avail $var1). Printing a list of suported versions:"
                ls /app/$var1/
           echo "exiting: please rety again"
           exit $?
        fi
fi
# Next check. Checking if default module version is loaded
fi
exit

再次編輯:

實際上設置了環境變量,但沒有為運行腳本的用戶設置

  • / app / modules / 0 / bin / modulecmd tcsh加載gcc / 4.3.4 setenv LD_LIBRARY_PATH'/app/mpfr/2.4.0/lib:/app/gmp/4.2.4/lib:/usr/lib64/mp​​i/gcc / openmpi / lib64'; setenv LD_RUN_PATH'/app/mpfr/2.4.0/lib:/app/gmp/4.2.4/lib:/app/gcc/4.3.4/lib64:/app/gcc/4.3.4 / lib'; setenv MANPATH'/app/gcc/4.3.4/man:/app/emacs/23.2/LMWP3/share/man:/app/vim/7.3.021/LMWP3/share/man:/app/xemacs /21.5.29/LMWP3/share/man:/app/j2re/1.6.0_22/LMWP3/man:/usr/lib64/mp​​i/gcc/openmpi/man:/usr/share/man:/opt/quest/man :/ usr / local / man:/ usr / man:/ opt / lsb / man:/ opt / mpich / man:/ opt / gnome / share / man:/ app / modules / 0 / man:/ app / modules / 0 / man'; setenv PATH'/app/gcc/4.3.4/bin:/app/firefox/3.6.12/LMWP3:/app/emacs/23.2/LMWP3/bin:/app/sametime/8.0.2: /app/nxclient/3.4.0.7/LMWP3/bin:/app/vim/7.3.021/LMWP3/bin:/app/xemacs/21.5.29/LMWP3/bin:/app/thunderbird/3.1.6/LMWP3: /app/thunderbird/3.1.6/LMWP3/bin:/app/openoffice/3.2.1/LMWP3/opt/openoffice.org3/program:/app/openoffice/3.2.1/LMWP3/openoffice.org3/program:/ app / j2re / 1.6.0_22 / LMWP3 / bin:/app/ica/client/11.1:/ ap p / acroread / 9.4.0 / LMWP3 / Adob​​e / Reader9 / bin:/home/ebrfred/.afs/0/rbin:/home/ebrfred/.afs/0/pbin:/ env / seln / bin:/ home / ebrfred / .afs / 0 / ibin:/ usr / atria / bin:/ usr / afsws / bin:/ usr / NX / bin:/ usr / lib64 / mpi / gcc / openmpi / bin:/ usr / bin:/ bin :/ usr / sbin:/ sbin:/ opt / quest / bin:/ usr / local / bin:/ usr / bin / X11:/ usr / X11R6 / bin:/ usr / games:/ opt / kde3 / bin:/ usr / openwin / bin:/ opt / cross / bin:/ usr / lib / mit / bin:/ usr / lib / mit / sbin:/ opt / gnome / bin:/ usr / lib / qt3 / bin:/ usr / dt / bin:/ usr / ccs / bin:/ app / arc / 0 / bin'; setenv LMFILES '/ env / common / modules / firefox /3.6.12:/env/common/modules/acroread/9.4.0: /env/common/modules/flashplayer/10.1:/env/common/modules/ica/11.1:/env/common/modules/j2re/1.6.0_22:/env/common/modules/openoffice/3.2.1:/env /common/modules/thunderbird/3.1.6:/env/common/modules/xemacs/21.5.29:/env/common/modules/vim/7.3.021:/env/common/modules/nxclient/3.4.0.7: /env/common/modules/sametime/8.0.2:/env/common/modules/emacs/23.2:/home/ebrfred/.afs/0/imodules/isit_modules:/env/common/modules/gmp/4.2.4 :/env/common/modules/mpfr/2.4.0:/ env / c ommon / modules / gcc / 4.3.4'; setenv LOADEDMODULES'firefox / 3.6.12:acroread / 9.4.0:flashplayer / 10.1:ica / 11.1:j2re / 1.6.0_22:openoffice / 3.2.1:thunderbird / 3.1。 6:xemacs / 21.5.29:vim / 7.3.021:nxclient / 3.4.0.7:sametime / 8.0.2:emacs / 23.2:isit_modules:gmp / 4.2.4:mpfr / 2.4.0:gcc / 4.3.4' ; setenv PKG_CONFIG_PATH'/app/gcc/4.3.4/lib/pkgconfig:/opt/gnome/lib64/pkgconfig:/opt/gnome/share/pkgconfig'; +退出0

參見man tcsh 您必須引用eval ...命令:

tcsh -c "eval \`/app/modules/0/bin/modulecmd tcsh $variable\`"

否則bash將解釋backticks命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM