我有一个主文件夹,其中有许多文件夹,每个文件夹包含许多文本文件。我需要在所有这些文本文件上运行程序。到目前为止,我有以下bash脚本,当我尝试执行时会抛出语法错误:
#!/bin/bash
for dir in mainfolder/*
for file in ${dir}/*.txt
do
echo “${file}”
./myprogram ${file}
done
done
我得到的错误是:
./ myscript:第5行:$ {dir} / *中的文件意外令牌for'
./myscript: line 5:
附近的语法错误.txt'
答案 0 :(得分:6)
你忘记了第一次。
#!bin/bash
for dir in mainfolder/*
do
for file in "${dir}"/*.txt
do
echo "${file}"
./myprogram "${file}"
done
done
请注意所有变量引用的引号。正如评论中所提到的,这是一个important measure to take。还要记住,引用是" ",而不是“”。