LinuxForum.Fans
Тема

bash+sed

Автор: spyphy 4 сообщений 3917 просмотров
#262789

в общем надо, чтоб работала такая конструкция

text
#!/bin/bash
sed '$c\msg='$1 file.txt 

Здесь $1 - строка, содержащая проблем. Поэтому sed не верно ее интерпретирует (слова в этой строке воспринимает как свои параметры)

В принципе такая штука работает тоже

text

sed '$d' 1.txt > 1.out
echo 'msg='$1 >> 1.out

но тогда создает временный файл, чего желательно бы избежать

#262793
"spyphy" написал:
Здесь $1 - строка, содержащая проблем. Поэтому sed не верно ее интерпретирует

А если строку заключить в кавычки ?

#262804

в принципе да, если в двойные кавычки

text
sed '$c\msg='"$1" file.txt 

, то работает.

#262827

Так и надо делать в большинстве случаев. Заключение переменных в кавычки - хорошая практика для bash.

Войдите или зарегистрируйтесь, чтобы ответить.