我正在使用Matlab打印一个用于运行GrADS命令的小文本文件(temp_script.exec)。该脚本如下所示:
'reinit'
'open temp_ctl.ctl'
'set lon -100 -80'
'set lat 20 30'
'define prc = var'
'set sdfwrite data_out.nc'
'sdfwrite prc'
脚本通过cshell调用:
#!/bin/csh -f
grads -lbc << EOF
temp_script.exec
EOF
exit
脚本似乎正确执行,但未生成输出(data_out.nc)。奇怪的是,如果我使用VI编辑它并替换第一个字符 - 命令之前的单引号&#34; reinit&#34; - 通过键入另一个单引号,然后重新运行脚本,可以正确生成数据。
我的问题是,有什么不同?这些脚本在几个不同的文本编辑器中看起来相同,但是&#34;修改过的&#34;脚本(通过键入)大1个字节。我正在使用&#34; fprintf&#34;函数在Matlab中生成单引号。这个功能可能有问题吗?
感谢阅读。
答案 0 :(得分:0)
查看文件是否真的相同(生成的文件和使用vi
编辑的文件):
od -c -t x1 temp_script.exec > temp_script.lis
od -c -t x1 vi_script.exec > vi_script.lis
diff exec_script.lis vi_script.lis
文件开头可能有UNICODE BOM,或文件末尾缺少换行符导致您的问题。