LINUX.ORG.RU

как правильно заэскейпить строку?

 , ,


0

2
DisplayManager._0.setup:        /usr/lib64/X11/xdm/Xsetup_0

и

! DisplayManager._0.setup:        /usr/lib64/X11/xdm/Xsetup_0

пробовал:

#!/usr/bin/env bash


function zzz() {
   local r="DisplayManager\.\_0\.setup\:\ \ \ \ \/usr\/lib64\/X11\/xdm\/Xsetup\_0"  # old
   local u="\!\ \DisplayManager\.\_0\.setup\:\ \/usr\/lib64\/X11\/xdm\/Xsetup\_0"  # new
   local f="/etc/X11/xdm/xdm-config" # config file
   
   if [[ -f ${f} ]]; then
            sed -i -e "s/${r}/${u}/g" "${f}"
            echo "zzz1"
   fi        
}

zzz
printf '%q' "DisplayManager._0.setup:        /usr/lib64/X11/xdm/Xsetup_0" #тоже некорректно выводит строку

~ 
➜ echo "text in double quotes"'"quoted"'"aaaaaaaaaaa"
text in double quotes"quoted"aaaaaaaaaaa

~ 
➜ echo "\!"                                          
!

~ 
➜ echo '\!' 
\!

~ 
➜ echo '/foo/bar/baz' | sed -r 's;/;\\/;g'
\/foo\/bar\/baz

tz4678 ★★ ()
Последнее исправление: tz4678 (всего исправлений: 2)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.