LINUX.ORG.RU

BASH траблы с echo


0

0

Исходная ситуация: встроенная система (router) с ограниченым набором команд. Имеется возможность эти команы выполнять удаленно. Надо перенести конфиг на router. До последнкго времени конфиг переносился так:

######code######
config = '''#<< password_file
passFileLineCount='1'
passFileLineCount0='root:$1$$CoERg7ynjYLsj2j4glJ34.:0:0:root:/root:/bin/sh'
#>> password_file

#<< default_wan_iface
default_wan_conn_cpeId="1"
default_wan_conn_pcpeId="1"
default_wan_conn_connName="WAN1"
default_wan_conn_conf_connName="WAN1"
default_wan_conn_iface="nas0"
#>> default_wan_iface'''

X_DLINK_COM_RunCommand({'RunCommands':
	["echo '%s' > /flash/part_1 && echo ok" %c2]
	)
#####code#######

Все поломалось когда в конфиге значение passFileLineCount0 стало выделяться не '"' а "'" . На выходе (в /flash/part_1 знаки "'" просто пропущены)

Собственно вапрос: как правильно маскировать "'", чтобы echo его не пропускало?  
anonymous

Re: BASH траблы с echo

\' не работает?

Svoloch ★★★ ()

Re: BASH траблы с echo

как вариант:

config='''#<< password_file
passFileLineCount="1"
passFileLineCount0="root:$1$$CoERg7ynjYLsj2j4glJ34.:0:0:root:/root:/bin/sh"
#>> password_file

#<< default_wan_iface
default_wan_conn_cpeId="1"
default_wan_conn_pcpeId="1"
default_wan_conn_connName="WAN1"
default_wan_conn_conf_connName="WAN1"
default_wan_conn_iface="nas0"
#>> default_wan_iface'''

config=${config//'"'/"'"}

Lucky ★★ ()
Ответ на: Re: BASH траблы с echo от Lucky

Re: BASH траблы с echo

\' не работает

второй вариант тоже не работает, так как нужно выдержать именно тот формат, который был в первоначальном конфиге, то есть он должен посимвольно совпадать с приведенным выше примером.

anonymous ()
Ответ на: Re: BASH траблы с echo от rab_boziy

Re: BASH траблы с echo

> echo 'hallo="world" hallo2='\''world2'\'''

мне кажется, или последние '' действительно лишние? =)

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