在bash中源文件时转义特殊字符

我写了一个脚本来源bash shell片段。 shell片断应该是一种configuration文件,基本上它是一堆bashvariables。

这里的问题是当一些stringvariables包含应该被转义的字符。 因为他们不能逃脱,这个剧本可能会迟到或者有不受欢迎的行为。

目前,我的脚本正在validationshell碎片(configuration文件)bash语法( bash -n ),但是如果有任何字符要被转义,那么将不会被检测到。

所以,我想要自动转义敏感字符,或者,至less,检测他们是一些,所以我可以显示错误并退出。

任何想法我怎么能实现呢?

$? variables是你的朋友。 它包含最近执行的命令的返回状态,包括bash内置函数。

 $ /bin/false $ echo $? 1 $ /bin/true $ echo $? 0 $ echo 'FOO="bar' > atest $ . atest -bash: atest: line 1: unexpected EOF while looking for matching `"' -bash: atest: line 2: syntax error: unexpected end of file $ echo $? 1 

请记住,它只返回最近的命令的状态。 如果在执行错误testing之前需要运行一个额外的命令,则需要立即将其分配给一个variables,如下所示:

 $ /bin/false $ MYRETURN=$? $ /bin/true $ echo $? 0 $ echo $MYRETURN 1