这个bash脚本有什么问题?

这个bash脚本有什么问题?,bash,Bash,我有一个主文件夹,其中有许多文件夹,每个文件夹包含许多文本文件。我需要在所有这些文本文件上运行一个程序。到目前为止,我有以下bash脚本,当我尝试执行时,它会抛出一个语法错误: #!/bin/bash for dir in mainfolder/* for file in ${dir}/*.txt do echo “${file}” ./myprogram ${file} done done 我得到的错误是: ./myscript:line 5:for的意外标记附近出现语法

我有一个主文件夹,其中有许多文件夹,每个文件夹包含许多文本文件。我需要在所有这些文本文件上运行一个程序。到目前为止,我有以下bash脚本,当我尝试执行时,它会抛出一个语法错误:

#!/bin/bash

for dir in mainfolder/*

for file in ${dir}/*.txt

do

 echo “${file}”
 ./myprogram ${file}

 done

 done
我得到的错误是:

./myscript:line 5:for的意外标记
附近出现语法错误

./myscript:第5行:
对于${dir}/*.txt'

中的文件,您忘记了第一个操作

#!bin/bash
for dir in mainfolder/*
do
  for file in "${dir}"/*.txt
  do
    echo "${file}"
    ./myprogram "${file}"
  done
done  

注意所有变量引用周围的引号。正如在评论中提到的,这是一个重要的问题。还请记住引号是“”,而不是“”。

请参见shellcheck.net这仍然使用“漂亮的”引号(
而不是
)。哦,第4行也应该引用
${dir}
。第7行应该引用
${file}