2017-02-17 29 views
1

У меня есть сценарий bash, в котором я хочу проверить, был ли передан флаг со значением, а затем использовать значение в переменной. Что-то вроде этого (псевдокод):Проверить флаг, переданный в скрипт Bash и значение процесса

file.sh -c 1.0.0 

внутри file.sh:

#!/bin/bash 

get flag: 
if flag 'c' then 
curl c 
else 
curl 'something else' 

Что наиболее оптимальный способ сделать выше?

+0

@TharangaAbeyseela что, если не аргумент, если не прошло? сценарий просто потерпит неудачу. – Scooby

+0

проверьте пожалуйста. жаль, что я ударил ввод до завершения :) –

+0

[BashFAQ # 35] (http://mywiki.wooledge.org/BashFAQ/035) подробно освещает эту тему. Обратите внимание, что 'getopt' является ** не ** предпочтительным решением. –

ответ

1

попробовать следующий

#!/bin/bash 


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