我在 MATLAB 中有以下内容:
while ~feof(fi)
dline== fgetl(fi)
if count == 0
if dline == -1
<do stuff>
end
end
if dline(end-27) == ':'
dline = dline(1:end-28)
end
<output>
for i = 32:size(dline,2)
if dline(i) == '{'
count = count + 1
sp = []
for j = 1:count
sp = [sp;s]
end
<output>
elseif dline(i) == '}'
count = count - 1
sp = []
for j = 1:count
sp = [sp;s]
end
<output>
elseif dline(i) == ','
<output>
else
<output>
end
end
我在索引我的 dline 时遇到问题。例如在 MATLAB 中:
if dline(i) == '{'
翻译成shell脚本,我有:
if [ ${line[i]} == '{' ]
或其一些变体。但是我收到了与此相关的错误,或者它没有找到'{'。我尝试用“$x”替换“i”,其中“x”从循环内的 32 开始计数。我尝试用“$match1”替换“{”,其中“$match1”=“{”。
请忽略 MATLAB 代码的任何问题,我知道它有效,我只是快速输入它。我更感兴趣的是将该代码转换为可用的 BASH 脚本(在 Linux 上)。