在嵌套文件夹中编译并运行代码

时间:2010-11-20 19:39:48

标签: c shell jar

我正在运行Ubuntu。我有一个文件夹“Project”,在该文件夹中我有一堆子文件夹。在每个子文件夹中,我有.c文件,.jar文件或.py文件。我想迭代所有文件,并为每个文件编译它,并使用“time”命令运行5次不同的输入,以计算执行时间。

我想为此创建一个shell脚本,但我似乎无法找到一个很好的方法来递归子文件夹中的所有文件。

3 个答案:

答案 0 :(得分:0)

如果你正在使用Bash4,你可以设置globstar来递归所有子目录而不关心深度

#!/bin/bash

shopt -s globstar

for file in /path/to/your/files/**; do

case "${file##.*}" in
c)
   gcc -c "$file"
   ;;
jar)
   java -jar "$file"
   ;;
py)
   python "$file"
   ;;
esac
done

答案 1 :(得分:-1)

如果所有子文件夹都具有相同的深度,则可以使用for i in ./*/*/*/*.py并使用适当数量的*。为每种格式使用一个循环,因为不管怎样,操作都会有所不同。

答案 2 :(得分:-2)

类似的东西:

for folder in *
do
  if [ -d $folder] then
    cd $folder
    for file in *.py
    do
      if [ -f $file ] then
        do your stuff ..
      fi
    done
    for file in *.c
    do
      if [ -f $file ] then
      fi
    done
    .......
    cd ..
  fi
done