for循环中循环语法错误:意外的文件结尾



我正试图在几个带有项目列表(a、B、C、D(的.json文件上运行一个名为aldy的程序

我想使用不带扩展名的文件名
,比如bob.json中的bob,amy.json的amy

所需输出为
bob.a.txt、bob.b.txt、…
amy.a.txt、amy.b.txt、..

我有的代码

#!/usr/bin/env bash
LIST=('A' 'B' 'C' 'D')
for file in *.json; do
filename=${file%%.*}       
for i in "${LIST}"; do
outfile = $filename + ".${i}.txt"
aldy -g ${i} -o $outfile $file
done
done

然而,我收到了错误消息,我真的不知道如何解决这个问题

语法错误:文件意外结束

如有任何帮助,我们将不胜感激
提前感谢

进行以下更正:

  • for i in "${LIST[@]}"; do。这就是获取数组所有元素的方法。

  • CCD_ 2。

    1. 分配中=周围可能没有空格
    2. 串联变量是通过将它们并排放置来完成的。您可以使用大括号(如在${expandthis}butnotthis中(来分隔它们,但在您的情况下,只需$filename.$i.txt即可(.用作分隔符(
  • aldy -g "$i" -o "$outfile" "$file"。展开变量时引用它们。如果你总是这样做,要么引号是多余的,要么(在大多数情况下(它们可以防止单词拆分和globbing引起的问题。

最新更新