shell脚本中的echo问题

时间:2015-04-23 10:43:49

标签: shell echo

遇到回声输出问题。



UPDATE




输出我正在寻找以下内容:



line=table_name

echo "SELECT CASE WHEN FORMAT_TYPE LIKE '%character%' THEN 'replace(replace(replace('||ATTNAME||',''\'',''\\''),''"'',''\"''),''|'',''\|'') as '||ATTNAME||',' ELSE ATTNAME||',' END FROM _V_RELATION_COLUMN WHERE NAME = '$line' ORDER BY ATTNUM;"




但是出现错误



SELECT CASE WHEN FORMAT_TYPE LIKE '%character%'
                  THEN 'REPLACE(REPLACE(REPLACE('||ATTNAME||',''\'',''\\''),''"'',''\"''),''|'',''\|'') AS '||ATTNAME||','
                  ELSE ATTNAME||','
              END
FROM _V_RELATION_COLUMN WHERE NAME IN ('table_name')
ORDER BY ATTNUM;




1 个答案:

答案 0 :(得分:0)

您需要转义字符串中的双引号

尝试

echo "SELECT CASE WHEN FORMAT_TYPE LIKE '%character%' THEN 'replace(replace(replace('||ATTNAME||',''\'',''\\''),''\"'',''\\\"''),''|'',''\|'') as '||ATTNAME||',' ELSE ATTNAME||',' END FROM _V_RELATION_COLUMN WHERE NAME = '$line' ORDER BY ATTNUM;"

请注意,要打印逃脱,您必须逃避逃生。

e.g

如果你想要\"
您需要输入\\\"