Задать вопрос
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки

Как сделать bash скрипт с параметром?

Как прочитать параметр, переданный при запуске скрипта?
К примеру:
bashscript.sh -name testname -ip 127.0.0.1

Разумеется, порядок параметров может быть иной:
bashscript.sh -ip 127.0.0.1 -name testname

Как считать ip в $IP и имя в $NAME?
  • Вопрос задан
  • 1033 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
butteff
@butteff Автор вопроса
Раз в тысячу лет заправляю свитер в носки
Вот пример синтаксиса:

while [ $# -ne 0 ]; do
			case "$1" in
				-u)
					USER=$2
					;;
				-p)
					PASSWORD=$2
					;;
				-q)
					htvcenter_SERVER=$2
					;;
				-i)
					INTERFACE=$2
					;;
				-n)
					APPLIANCE_NAME=$2
					;;
				-s)
					htvcenter_WEB_PROTOCOL=$2
					;;
			esac
			shift
		done
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
hummingbird
@hummingbird
#!/bin/bash

showopts () {
  while getopts ":pq:" optname
    do
      case "$optname" in
        "p")
          echo "Option $optname is specified"
          ;;
        "q")
          echo "Option $optname has value $OPTARG"
          ;;
        "?")
          echo "Unknown option $OPTARG"
          ;;
        ":")
          echo "No argument value for option $OPTARG"
          ;;
        *)
        # Соответствий не найдено
          echo "Unknown error while processing options"
          ;;
      esac
    done
  return $OPTIND
}

showargs () {
  for p in "$@"
    do
      echo "[$p]"
    done
}

optinfo=$(showopts "$@")
argstart=$?
arginfo=$(showargs "${@:$argstart}")
echo "Arguments are:"
echo "$arginfo"
echo "Options are:"
echo "$optinfo"


./scrypt.sh -p -q qoptval abc "def ghi"
Arguments are:
[abc]
[def ghi]
Options are:
Option p is specified
Option q has value qoptval
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Ответ написан
Комментировать
xenozauros
@xenozauros
Админю, пишу на питоне, вот это вот все...
Тут уже написали красивых примеров.
Но, в кратце если, то внтури скрипта, у переменных будет значение:
$1 - первый аргумент
$2 - второй
и т.п.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы