сценарий оболочки с представленными аргументами - PullRequest
0 голосов
/ 17 января 2012
#!/bin/bash
#if present -a flag then print this echo
#echo "A";
#if -b is present then print b
#echo "B"

#and if -c 10 present how can I read this value '10'  ?

выше, как я хочу посмотреть мой сценарий

и я хочу иметь возможность запустить его вот так

myscript.sh -a -b -c 10

или

myscript.sh

или

myscript.sh -a -c 10

или

myscript.sh -c 10

и т. Д.

Ответы [ 4 ]

3 голосов
/ 17 января 2012

Введите 'man getopt' в вашей оболочке и следуйте инструкциям.

1 голос
/ 17 января 2012

Используйте getopts как это:

arg=-1
while getopts "c:ab" optionName; do
   case "$optionName" in
   a) echo "-a is present";;
   b) echo "-b is present";;
   c) arg="$OPTARG"; echo "-c is present [$arg]";;
   esac
done
0 голосов
/ 17 января 2012
0 голосов
/ 17 января 2012

Вы можете взглянуть на getopts.

Следующий пример взят из http://wiki.bash -hackers.org / howto / getopts_tutorial

#!/bin/bash

while getopts ":a" opt; do
  case $opt in
    a)
      echo "-a was triggered!" >&2
      ;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      ;;
  esac
done
...