递归函数不起作用

Mr.*_*esh 2 shell bash recursive function

我知道这是一个荒谬的想法,但我正在尝试编写一个脚本来运行文件系统上的每个目录。该文件的名称是“Everywhere.sh”。这是代码:

#!/bin/bash

recurse(){
    cd $1   
    for INDEX in $(echo *)
    do
        recurse $INDEX
    done
}

recurse /
Run Code Online (Sandbox Code Playgroud)

我该如何更改它(除了 su root -c "./Everywhere.sh")以使其正常工作?

编辑:我只需要修复这个;我不需要不同的执行方法。

Wil*_*ard 7

(您的问题似乎已经如所述得到了回答;我想解决它的另一个方面。)

即使你说“我知道这很荒谬”,我只是提到在文件系统的每个目录中运行一些命令可以在一行中完成:

find / -type d -exec sh -c 'cd "$1" && some_command' sh {} \;
Run Code Online (Sandbox Code Playgroud)

这不会处理您的权限问题,但它比编写递归 shell 函数要简单得多。