我在bash下运行脚本时遇到问题。当脚本启动并且正在执行一些长操作和时,我更改了该脚本,在长时间操作完成后,bash正在读取脚本的其余部分,并且失败并出现如下的愚蠢错误:
test.sh: line 1093: unexpected EOF while looking for matching `"'
test.sh: line 1098: syntax error: unexpected end of file
如果我运行相同的脚本(没有进一步更改),则无任何错误。
我怀疑bash有一个缓冲读数。有什么我可以做的事情来制作整体的bash阅读剧本吗?
答案 0 :(得分:3)
Bash逐行读取脚本。如果你改变当前位置之前的一行的长度,bash将开始从一行的中间读取下一行,并且很可能失败。
不要更改正在运行的脚本的来源,制作副本。
答案 1 :(得分:0)
答案 2 :(得分:0)
我找到了一个解决方案:添加{}之类的
#!/bin/bash
{
code goes here
}
这样,{}内的所有内容都将被读入内存。