LINUX.ORG.RU

При вставке строки в файл при помощи SED пропадают обратные слэши «\»

 ,


0

2
#!/bin/sh
#
str='\"touch /tmp/kill_me;kill -9 %p\""'
echo "Строка для вставки:"$str
sed -i "1 a $str" /tmp/kill.sh

Пытаюсь вставить в файл kill.sh второй строкой подстроку $str она содержит обратные слэши echo правильно выводит на экран: Строка для вставки:\«touch /tmp/kill_me;kill -9 %p\»" а вот после sed-а в файл kill.sh строка попадает уже в таком вот виде: #!/bin/sh «touch /tmp/kill_me;kill -9 %p»" #

т.е. символы «\» отсутствуют

делай \\, потому что один съедает сам bash.

Spoofing ★★★★★ ()

sed воспринимает \" как кавычку, т.ч. всё верно. Выше посоветовали, как обойти.

ps %p\""' -лишняя кавычка.

ashot ★★★ ()
Последнее исправление: ashot (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.