Общие сведения об использовании ln

Bash не обрабатывает символы [ или ] (сами по себе), отличные от буквы алфавит.

В этом случае bash видит «слово», [, и ищет команду с этим именем. Если вы посмотрите в свою файловую систему, вы, вероятно, обнаружите, что / bin / [ (или / usr / bin / []) существует как исполняемый файл. Как оказалось, bash также предоставляет встроенную версию (для повышения эффективности), но это всего лишь деталь реализации.

Команда [ (например, исполняемый файл с таким именем) имеет правило, согласно которому последний передаваемый ей параметр должен быть ] , в противном случае возникает ошибка. Это может быть отчасти потому, что это эстетично, но это также служит для защиты вас от случайно усеченных команд, что приятно.

Тот факт, что они не особые , является причиной того, что вы не можете опустить пробел до и после [ или ] .


Исключения :

  • Когда [ и ] встречаются в правильном формате в одном слове, например [a-z] , тогда является специальным и применяются правила подстановки bash.
  • [ команда является специальной и может делать многое, что [ не может (и параметры внутри [[..]] ] обрабатываются по-разному, как и некоторые разрывы строк). Соответствующее ]] также является специальным, поскольку это зарезервированное слово оболочки, которое не может быть именем команды, и завершает специальную обработку, которая следует за ключевым словом [[].
4
03.07.2016, 02:11
0 ответов

Теги

Похожие вопросы