这个bash脚本有什么问题?

时间:2017-09-27 21:07:35

标签: bash

我有一个主文件夹,其中有许多文件夹,每个文件夹包含许多文本文件。我需要在所有这些文本文件上运行程序。到目前为止,我有以下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'

1 个答案:

答案 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。还要记住,引用是" ",而不是“”。