我写了一个脚本来源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