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