-3

Когда необходимо указывать аргумент командной строки?

1 ответ1

6

Вы должны цитировать, когда это иначе будет интерпретироваться иначе, чем то, что вы могли бы сделать оболочкой.

Несколько примеров:

Вы бы цитировали строковый аргумент foo bar чтобы программа не интерпретировала его как два аргумента из-за пробела.

# results in two directories, 'foo' and 'bar'.
mkdir foo bar

# results in one directory named 'foo bar'
mkdir "foo bar"

# you could also escape the space to prevent interpretation as argument separator
mkdir foo\ bar

Вы также цитируете, чтобы предотвратить некоторую специальную интерпретацию вашего ввода. Если оболочка использует $ для обозначения имени переменной, foo$bar может интерпретироваться как foo если $bar не определено, или даже выдает ошибку.

bar=qux

# create directory fooqux
mkdir foo$bar

# create directory foo$bar
mkdir 'foo$bar'

В особом случае, например, в bash, вы цитируете $@ (аргументы текущей команды), чтобы убедиться, что они передаются другой команде, заключенной в кавычки по отдельности. Смотрите здесь для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .