Подтвердить что ты не робот

Печатать двойные кавычки в программировании оболочки

Я хочу напечатать двойные кавычки, используя инструкцию echo в программировании оболочки.

Пример:

echo "$1,$2,$3,$4";

печатает xyz,123,abc,pqrs

Как напечатать "xyz","123","abc","pqrs";

Я попытался разместить двойные кавычки в выражении эха, но его не печатали.

4b9b3361

Ответ 1

Вам просто нужно процитировать их:

echo "\"$1\",\"$2\",\"$3\",\"$4\""

Как отмечено здесь:

Вложения символов в двойные кавычки (' ") сохраняют литерал значение всех символов в кавычках, за исключением $, '`,' \, И, когда расширение истории включено, '!. Персонажи '$ И `` сохраняют свое особое значение в двойных кавычках (см. Расширения оболочки). Обратная косая черта сохраняет свое особое значение только тогда, когда за которым следует один из следующих символов: '$,' `, '', '\ или новая линия. В двойных кавычках обратная косая черта, за которой следует одна из эти символы удаляются. Обратные косые черты перед символами без особое значение остаются неизмененными. Можно цитировать двойную кавычку в двойных кавычках, предшествуя ему обратным слэшем. Если включено, расширение истории будет выполнено, если только"! появляющийся в двойном кавычки экранируются с помощью обратного слэша. Обратная косая черта, предшествующая "! не удаляется.

Специальные параметры * и @имеют особое значение, когда в двойных кавычки (см. расширение параметров оболочки).

Ответ 2

Используйте printf, не требуется экранирование:

printf '"%s","%s","%s","%s";\n' $1 $2 $3 $4

и завершающий ; также будет напечатан!

Ответ 3

Вы должны выйти из ", чтобы сделать его видимым на выходе, вы можете сделать это:

echo \""$1"\",\""$2"\",\""$3"\",\""$4"\"