bash и аргументы командной строки
Пример разбора нескольких опций командной строки
VERBOSE= NINGEN_OPTS= function usage { echo "Usage: $(basename $0) [-hwv] [-n ningen_opts]" 2>&1 echo ' -h shows usage' echo ' -v set verbose mode ON' echo ' -w build for windows (using mingw on linux)' echo ' -n options passed to ningen' exit 1 } while getopts ":hvwn:" opt; do case ${opt} in #----------------------------- h ) usage ;; v ) VERBOSE="-v" ;; w ) BUILD_FOR_WINDOWS=1 ;; n ) NINGEN_OPTS=$OPTARG ;; #----------------------------- \? ) echo "Invalid Option: -$OPTARG" 1>&2 exit 1 ;; :) # If expected argument omitted: echo "Error: -${OPTARG} requires an argument." exit 1 # Exit abnormally. ;; *) # If unknown (any other) option: usage # Exit abnormally. ;; esac done shift $((OPTIND -1)) # берем первый аргумент из списка - директория на сервере куда копировать #TARGET_DIR="$1" #shift echo "Main script running"
Отказ запуска без аргументов
Для того, чтобы обработать случай отсутствия аргументов, после usage добавить:
if [[ ${#} -eq 0 ]]; then usage fi