Вот моя версия сценария оболочки без использования getopts, которая решает проблему.Проблема, с которой я сталкиваюсь при использовании getopts, состоит в том, чтобы задавать именованные аргументы как -GAME, вместо этого работает только -g, то есть один символ.
Примечание.Сценарий sh, чтобы спросить это, поскольку java делает работу, если они еще не предоставлены.
#!/bin/sh
game=0
if [ $# -ge 1 ];then
if [ ${6} = "-GAME" ];then
game=1
fi
if [ $game -ne 1 ];then
echo "Enter path to GAME location"
read GAME
else
GAME=${7}
fi
echo "Game:" $1 ", Game location: " $GAME
else
echo "usage: ./run.sh gamename"
echo "usage: ./run.sh gamename [-user] [username] [-pass] [password] [-GAME] [path]"
fi
Вывод 1:
. / Run.sh COD4 -пользовательский абхишек -пропустить здесь -GAME / home / gamesИгра: COD4, Расположение игры: / дома / игры
Выход 2:
. / Run.sh COD4./run.sh: строка 4: [: =: ожидается унарный операторВведите путь к месту игры/ главная / MyGamesИгра: COD4, Местоположение игры: / home / mygames
Спасибо всем за усилия :) 1020 *