Как эхо выражение с одинарными и двойными кавычками?

Я пробовал много вещей, но я новичок в оболочке. Возможно ли иметь двойное и одинарное кавычки в echo ?

Я хочу генерировать echo "scan 'LPV',{FILTER => "(PrefixFilter ('MP1-Eq1')"}" для системного вызова, но я получаю сообщение об ошибке из-за двойных двойных и одинарных кавычек.

 ftable="echo" " \"" "scan" " " "'LPV',{FILTER => " "\"" "\(" "PrefixFilter ""\(""'MP1-Eq1'" "\)" "\"" "\}" "\" " echo "scan 'LPV',{FILTER => "(PrefixFilter ('MP1-Eq1')"}" bash: syntax error near unexpected token `(' 

Как я могу написать scan 'LPV',{FILTER => "(PrefixFilter ('MP1-Eq1')"} ? Синтаксис – это hbase , и я не могу его изменить …

РЕДАКТИРОВАТЬ

Я хочу вызвать эхо в системном вызове .

 ftable="echo "scan 'LPV',{FILTER => "(PrefixFilter ('MP1-Eq1')"}" " system(ftable) error 

Я пробовал с $, но

 ftable="echo $'scan" "\'" "LPV" "\'" ",{FILTER => " "\"" "(PrefixFilter (" "\'" "MP1-Eq1" "\'" ")" "\"" "}' '" system(ftable) error 

Получение ошибки из-за двойной кавычки.

В bash :

 echo $'scan \'LPV\',{FILTER => "(PrefixFilter (\'MP1-Eq1\')"}' 

или

 echo "scan 'LPV',{FILTER => \"(PrefixFilter ('MP1-Eq1')\"}'" 

Для более длинных строк это может быть более удобной альтернативой:

 > cat <<EOT scan 'LPV',{FILTER => "(PrefixFilter ('MP1-Eq1')"} EOT 

с EOT или \EOT , в зависимости от того, предназначены ли расширение параметров и удаление цитат (обратная косая черта) или нет.

Использование в awk

Определение этой строки в awk сделает все еще более сложным. Это должно быть сделано вне awk в оболочке:

 ftable=$'echo "scan \'LPV\',{FILTER => "(PrefixFilter (\'MP1-Eq1\')"}"' # echo "$ftable" awk -v ftable="$ftable" '... system(ftable); ...' 

Вам просто нужно избегать двойной цитаты внутри двойной цитаты:

 $ ftable="echo \"scan 'LPV',{FILTER => \"(PrefixFilter ('MP1-Eq1')\"}\"" $ echo $ftable echo "scan 'LPV',{FILTER => "(PrefixFilter ('MP1-Eq1')"}"