0
Вот мой сценарий Bash.
Предполагая, что: 1) go.sh это скрипт для выполнения 2) пользователь будет запустить скрипт таким образом
# ./go.sh -v file1.txt file2.txt
или
# ./go.sh --verbose file1.txt file2.txt
3) Я хотел бы имеют более элегантный способ написать это:
#!/bin/bash
Verbose_Mode=0
until [ "$#" == "0" ]; do
case $1 in
"-v" or "--verbose")
Verbose_Mode=1
;;
Это приведет к тому, что i n синтаксическая ошибка из-за: "- v" или "--verbose".
Мой вопрос: Как я могу правильно написать (если это возможно) код:
#!/bin/bash
Verbose_Mode=0
until [ "$#" == "0" ]; do
case $1 in
"-v")
Verbose_Mode=1
;;
--verbose")
Verbose_Mode=1
;;
esac
Заранее спасибо за ответы.
Обратитесь к [Как написать тематическое заявление в Bash] (HTTP://stackoverflow.com/questions/16673570/bash-case-statement) для правильного синтаксиса операторов case Bash. – codeforester
Вы разрешаете пользователю использовать коммутатор в любом месте линии или только в качестве первого параметра? Если только сначала вы можете просто протестировать его, сдвиньте и перейдите. – grail
См. Также [BashFAQ/35] (http://mywiki.wooledge.org/BashFAQ/035) и [ComplexOptionParsing] (http://mywiki.wooledge.org/ComplexOptionParsing). –