微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

包含单引号或双引号的Bash变量扩展

如何解决包含单引号或双引号的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 举报,一经查实,本站将立刻删除。