Одинарная кавычка в двойных кавычках и справочнике Bash

Короткий ответ: не делайте этого.

Длинный ответ: Это раньше было установкой по умолчанию полей Unix. Но это приводит к непреднамеренному совместному использованию данных, даже возможность модификации данных поддерживающими пользователями, если существует ошибка в полномочиях. Со временем, большинство установок Unix/Linux, перемещенных в установку с группой для каждого пользователя. Первоначально, когда пользователь принадлежал нескольким группам (основная группа, и дополнительные группы, в Unix - говорят), для получения полномочий другой группы, которую нужно было дать группе для переключения на, и программа для выполнения к специальной программе (имя выходит из меня, это было долгое время...). С сегодняшними системами каждый процесс принадлежит всем группам одновременно, таким образом, это больше не необходимо. Просто разместите всех пользователей в группу, которой принадлежат совместно используемые файлы. Еще больше детализированных полномочий доступно в файловых системах, который обрабатывает ACLs, где можно присвоить полномочия отдельных пользователей на файле, независимом от пользователя/группы/других. Посмотрите на страницы руководства для acl (5), chacl (1).

19
09.02.2017, 02:13
2 ответа

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

то, Что можно сделать, распечатать одинарные кавычки отдельно:

echo "'"'$a'"'"

или побег $ :

echo "'\$a'"
22
27.01.2020, 19:45

Вы неправильно понимаете документацию:

наличие это - особое значение внутри, экранировал бы $ от специальной интерпретации

"Наличие ее особого значения", означает, что это интерпретируется особенно не буквально. Одинарные кавычки предотвращают $ от того, чтобы быть расширенным. Но одинарные кавычки в двойных кавычках являются буквенными символами, т.е. они ни на что не влияют. Если вы хотите вывод $a затем, вам нужно эхо '$a' .

6
27.01.2020, 19:45

Теги

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