如何解决包含单引号或双引号的Bash变量扩展
我有一个正在编写的脚本,可以使用promela模型自动运行特定的测试。
用户必须向promela模型和另一个文件提供他们希望针对该模型运行的ltl属性。
我使用以下命令逐行读取文件:
while read line; do
do_something()
end < $PROPERTIES
do_something()更复杂,但是我遇到的主要问题是最终我想调用以下内容
spin -run -m100000 -f $line $PROMELAFILE >> $OUTFILE
最终命令应如下所示
spin -run -m100000 -f '[] true' file.pml >> out.txt
最终命令确实可以在命令行中正常工作。要使-f选项正常工作,引号是绝对必要的。
问题是$ line变量,当从文件中读取它时,它看起来如下所示
'[]是'
它也可能看起来像
“ []是”
在语义上是等效的。
但是,我不断收到以下错误消息
unexpected EOF while look for matching `"'
Syntax error: unexpected end of file
无论是单引号还是双引号,都会发生此错误
这使我认为,当$ line扩展时,关于bash以及'和'的使用我不了解。
您可以提供的任何帮助/理解都将非常有帮助。谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。