我必须使用转义版本替换变量中的所有斜杠,反斜杠,单引号和双引号(可能在传递中):
' --> \'
" --> \"
\ --> \\
/ --> \/
此时,我用它来替换单引号:
${MYVAR//\'/\\\'}
但是,当我试图在一次通过中替换斜线,反斜线,单引号和双引号时,我就被困了。
答案 0 :(得分:0)
你可以使用sed replace:
echo "'\"\\/" | sed "s~\(['\"\/]\)~\\\\\1~g"
根据评论编辑:
EXPLORE_FOLDER="/volume1/video/myMovies"
LS_LIST="$(ls --recursive "$EXPLORE_FOLDER")"
RESULT="$(sed "s~\(['\"\/]\)~\\\\\1~g" <<<"$LS_LIST")"
echo "$RESULT"
或者只是:
EXPLORE_FOLDER="/volume1/video/myMovies"
RESULT="$(ls --recursive "$EXPLORE_FOLDER" | sed "s~\(['\"\/]\)~\\\\\1~g" <<<"$LS_LIST")"
echo "$RESULT"