包含单引号或双引号的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 (将#修改为@)