6

На "стандартном BASH" подстановочный знак внутри двойных кавычек появляется? Например:

$ touch abc
$ ls "*abc*"

Это будет или не будет работать на Bash?

Мне сказали, что Ubuntu поставляется с вариантом bash, который не соответствует POSIX или BASH. Это правда?

1 ответ1

6

Краткий ответ: нет

Длинный ответ от man bash:

Заключение символов в двойные кавычки сохраняет буквальное значение всех символов в кавычках, за исключением $, `, \

Так:

~$ touch sas
~$ ls *a*
sas
~$ ls "*a*"
ls: cannot access *a*: No such file or directory

Конечно, когда речь идет о двойных кавычках и звездочках, есть еще одно исключение: расширение параметра (то есть: "$ *") ... но это другая история

На второй вопрос: вы спрашиваете о тире? Dash - это легкая оболочка для скриптов. В Debian и в Ubuntu для каждого расширения (как на основе Debian) псевдоним sh; Основным преимуществом bash является его скорость, поэтому он используется по умолчанию для системных скриптов; однако bash по-прежнему доступен в качестве интерактивной оболочки для пользователей по умолчанию

 ~$ ls -l /bin/sh 
lrwxrwxrwx 1 root root 4 2011-04-21 11:54 /bin/sh -> dash

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