"$ 1/*"在"for file in $ 1/*"中的含义是什么

lou*_*xiu 6 linux bash shell

下面的简短bash脚本列出了给定目录及其子目录中的所有文件和目录.$1/*脚本中的含义是什么?请给我一些关于它的参考.谢谢

#!/bin/sh

list_alldir(){
    for file in $1/*
    do
        if [ -d $file ]; then
            echo $file
            list_alldir $file
        else
            echo $file
        fi
    done
}   

if [ $# -gt 0 ]; then 
    list_alldir "$1"
else
    list_alldir "."
fi
Run Code Online (Sandbox Code Playgroud)

zel*_*lio 18

它是被视为目录的第一个参数的glob

在bash脚本参数文件传递到脚本$0(这是脚本的名称),然后$1,$2,$3...要访问所有的人,你既可以使用自己的标签或使用该组的结构之一.对于组构造,有$*$@.($*将所有参数视为一个块,并将其$@视为分隔$IFS)