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-100...@moon>


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Ответить