Re: оффтоп: могут ли имена gnu-опций содержать пробелы?
ivan demakov -> debian-russian@lists.debian.org @ Tue, 29 Sep 2009 18:18:30 +0700:
>> >> Могут ли имена gnu-опций содержать пробелы?
>> >> Типа:
>> >>
>> >> --"option with spaces"="value with spaces"
>>
>> SM> man getopt ничего про это не говорит. Проще проверить, взяв,
>> SM> например, за образец код из того же мануала.
>>
>> SM> Теоретически, если опции с пробелами допустимы, то как, например,
>> SM> интерпретировать
>>
>> SM> "--foo bar=x"
>>
>> SM> как "--foo" со значением "bar=x" или "--foo bar" со значением "x"?
>>
>> Я бы предположил, что gnu getopt, получив _одну_ строку, должна искать в
>> ней '=', а не пробелы. Потому что штатный синтаксис у нее либо
>> --opt=val (_один_ элемент argv), либо --opt val (_два_ элемента argv).
>>
>> Хотя, конечно, с этих гнушников станется...
>>
id> ~$ ls "--foobar=asd"
id> ls: unrecognized option '--foobar=asd'
id> Try `ls --help' for more information.
id> ~$ ls "--foo bar=asd"
id> ls: unrecognized option '--foo bar=asd'
id> Try `ls --help' for more information.
id> что бы это значило?
Unrecognized option, очевидно. Знак "=" ищется только для тех опций,
которые описаны как имеющие аргумент.
Кстати, спасибо за идею указания на программу, на которой проверить. Итак,
zsh% ls --format commas tmp/test-ca
testca*, TestCA/
zsh% ls '--format=commas' tmp/test-ca
testca*, TestCA/
zsh% ls '--format commas' tmp/test-ca
ls: нераспознанный ключ `--format commas'
Итого, мое предположение похоже на верное.
--
А еще следует потребовать, чтобы программисты, перед тем, как писать код,
внимательно прочли спецификацию: с сыром - это чизбургер.
Игус в <Pine.LNX.4.44.0401231840020.15582-100000@moon>
Reply to: