gobyexample/examples/command-line-flags/command-line-flags.sh
2019-10-12 20:58:18 +03:00

59 lines
2.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Чтобы поэкспериментировать с программой флагов командной
# строки, лучше сначала скомпилировать ее, а затем
# напрямую запустить полученный бинарный файл.
$ go build command-line-flags.go
# Попробуйте встроенную программу, сначала задав ей
# значения для всех флагов.
$ ./command-line-flags -word=opt -numb=7 -fork -svar=flag
word: opt
numb: 7
fork: true
svar: flag
tail: []
# Обратите внимание, что если вы опустите флаги, они
# автоматически примут свои значения по умолчанию.
$ ./command-line-flags -word=opt
word: opt
numb: 42
fork: false
svar: bar
tail: []
# Конечные позиционные аргументы могут быть
# предоставлены после любых флагов.
$ ./command-line-flags -word=opt a1 a2 a3
word: opt
...
tail: [a1 a2 a3]
# Обратите внимание, что пакет `flag` требует, чтобы все
# флаги отображались перед позиционными аргументами
# (в противном случае флаги будут интерпретироваться
# как позиционные аргументы).
$ ./command-line-flags -word=opt a1 a2 a3 -numb=7
word: opt
numb: 42
fork: false
svar: bar
tail: [a1 a2 a3 -numb=7]
# Используйте флаги `-h` или `--help`, чтобы получить
# автоматически сгенерированный текст справки для
# программы командной строки.
$ ./command-line-flags -h
Usage of ./command-line-flags:
-fork=false: a bool
-numb=42: an int
-svar="bar": a string var
-word="foo": a string
# Если вы укажете флаг, который не был указан для пакета
# флагов, программа напечатает сообщение об ошибке
# и снова покажет текст справки.
$ ./command-line-flags -wat
flag provided but not defined: -wat
Usage of ./command-line-flags:
...