if find /app/$var1 -maxdepth 1 -type l -o -type d | grep $var2 #results in a nice list where i can manually get a true match. # if match is found then execute command. $realcmd "$@" rc=$? exit $rc else echo "no match,the version you are looking for does not exist" fi
当前代码:
这包括我的所有代码(未清除).
命令我运行:“./xmodule加载firefox / 3.6.12”
此版本将退出
#!/bin/bash # hook for some commands #echo $@ #value of sting that is entered after "xmodule" cmd=$(basename "$0") #echo "called as $cmd" if [[ $cmd = "xmodule" ]] then realcmd='/app/modules/0/bin/modulecmd tcsh' # verify parameters fi # check if $@ contains value "/" to determine if a specific version is requested. case "$@" in */*) echo "has slash" var1=$(echo "$@" | grep -Eio '\s\w*') # Gets the aplication name and put it into var1 echo $var1 # is not printed should be "firefox" var2=$(echo "$@" | grep -o '[^/]*$') # Gets version name and put it into var2 echo $var2 # Checking if version number exist in /app/appname/ if find /app/$var1 -noleaf -maxdepth 1 -type l -o -type d | grep $var2; then $realcmd "$@" exit $? else echo "no match,the version you are looking for does not exist" # Should there be an exit here? fi ;; *) echo "doesn't have a slash" ;; esac
输出:
我的电脑[9:55 am] [user / Desktop / script] – > ./xmodule加载firefox / 3.6.12
“有斜线
3.6.12
没有匹配,你正在寻找的版本不存在
如果有空白(3.6.1以上)应该有应用程序名称.我现在意识到这必须是我的问题,它的使用我可能只是/应用程序的路径.
但是我不认为我改变了代码的那部分内容.