如何将循环合并到bash别名中

jab*_*jac 0 bash alias for-loop

我正在尝试创建一个别名,该别名在几个文件夹中循环并运行一个build命令,但我一直得到显示的输出for >

这是我的.zshrc文件中提供的功能

recurse_build () {
    for src in `ls`; do 
        cd $src; build; cd ..
    done
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试做一个别名

alias br='recurse_build'
Run Code Online (Sandbox Code Playgroud)

但我最终得到以下提示

for > 
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

编辑:修复函数中的语法错误。键入而不是复制粘贴是一种糟糕的情况

che*_*ner 5

除了命令替换中缺少反引号之外,这还是迭代文件的错误方法。使用全局模式。

recurse_build () {
    for src in */; do
        pushd "$src" || continue   # Don't do anything if pushd fails
        build
        popd
    done
}
Run Code Online (Sandbox Code Playgroud)

使用pushdpopd比记住要返回的地方要干净一些。