LINUX.ORG.RU

echo '$чего либо' c символом переменной [bash]

 ,


0

1

Подскажите плиз как сделать это:

Нужно засунуть в файл переменную и просто текст вначале которого стоит $, но он не является переменной. Я пробую так:

#!bin/bash
STR2=A
SOMEWHAT="
'$STR1'
"$STR2"
"
echo "$SOMEWHAT" > ~/file

В итоге вместо $STR1 остаются только кавычки.

Если просто ввести в терминал echo '$STR1' > ~/file то все отлично.

★★★★

Последнее исправление: cetjs2 (всего исправлений: 2)

Спецсимволы требует экранирования:

$ echo $OLOLO

$ echo \$OLOLO
$OLOLO
$ echo 'OLOLO'
OLOLO
$ echo \'OLOLO\'
'OLOLO'
$ echo "OLOLO"
OLOLO
$ echo \"OLOLO\"
"OLOLO"
$ 

IPR ★★★★★
()

Нужно засунуть в файл переменную и просто текст вначале которого стоит $, но он не является переменной. Я пробую так:

пробуй так: http://www.opennet.ru/docs/RUS/bash_scripting_guide/c11785.html

А перед $ ставь обратный слеш, дабы оно не раскрывалось.

#!/bin/bash

# Команда 'echo' прекрасно справляется с выводом однострочных сообщений,
# но иногда необходимо вывести несколько строк.
# Команда 'cat' и встроенный документ помогут вам в этом.

lol="ololo"

cat <<End-of-message
-------------------------------------
Это первая строка сообщения.
Это вторая строка сообщения.
Это третья строка сообщения.
Это четвертая строка сообщения.
Это последняя строка сообщения.
\$lol
$lol
-------------------------------------
End-of-message

exit 0

пример оттуда с баксами.

drBatty ★★
()
Ответ на: комментарий от funeralismatic

SOMEWHAT=`'\$STR1'\n"$STR2"`

у меня

$ SOMEWHAT=`'\$STR1'\n"$STR2"`
bash: $STR1n: команда не найдена

GNU bash, version 4.2.37(2)-release (x86_64-slackware-linux-gnu)

drBatty ★★
()

Всем спасиб.

invokercd ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.