TEST=`echo $TEST | sed -e "s/\//\\\\\//g"` 이 스크립트가 에러나는 이유가 궁금합니다.

nukiboy의 이미지


#! /bin/sh

TEST="/www/naver"

백쿼우딩을 안하고 이렇게 하면
echo $TEST | sed -e "s/\//\\\\\//g"

에러가 안나는 반면에

TEST=`echo $TEST | sed -e "s/\//\\\\\//g"` <== 이렇게 사용하면 에러가 나네요.

output :

sed: -e expression #1, char 5: unknown option to `s'

궁금합니다. 백쿼우팅 때문인거 같은데요..

nukiboy의 이미지

TEST="\"

이렇게 백쿼우팅 결과값에 역슬러쉬가 저렇게 들어가서 에러가 난거네요..

TEST="\\" 이렇게 처리를 해야했었네요.

ihavnoth의 이미지


GNU bash, version 3.2.39

$ TEST="/www/naver"
$ echo $TEST
/www/naver
$ echo $TEST | sed -e "s/\//\\\\\//g"
\/www\/naver
$ A=$( echo $TEST | sed -e "s/\//\\\\\//g" )
$ echo $A
\/www\/naver

없음