В этом выражении я пытаюсь сопоставить, существует ли версия ($ var2) в пути /app/ $var1 (имя приложения)
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 "[email protected]"
rc=$?
exit $rc
else
echo "no match, the version you are looking for does not exist"
fi
текущий код: это включает весь мой код (не очищается). command Я запускаю: "./xmodule load firefox/3.6.12" эта версия завершает работу
#!/bin/bash
# hook for some commands
#echo [email protected] #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 [email protected] contains value "/" to determine if a specific version is requested.
case "[email protected]" in
*/*)
echo "has slash"
var1=$(echo "[email protected]" | grep -Eio '\s\w*') # Gets the aplication name and put it into var1
echo $var1 # is not printed should be "firefox"
var2=$(echo "[email protected]" | 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 "[email protected]"
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
Выход: mycomputer [9:55 am] [пользователь/рабочий стол /script] → ./xmodule load firefox/3.6.12 'имеет слэш
3.6.12 нет совпадения, версия, которую вы ищете, не существует
Если есть пробел (выше 3.6.1), должно быть имя приложения. Я теперь понимаю, что это должна быть моя проблема, грешит путь, который он использует, вероятно, просто/приложение. Но я не думаю, что я что-то изменил в этой части кода.