“$ 1 / *”在“$ 1 / *”中的含义是什么

下面的短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 

这是作为目录考虑的第一个参数的glob

在bash脚本中,文件的参数作为$0 (这是脚本名称)传递到脚本中,然后是$1$2$3 …要访问所有这些脚本,可以使用它们的标签,或者使用其中一个组构造。 对于组结构有$*$@ 。 ( $*将所有参数视为一个块,其中$@认为它们由$IFS分隔)

$1表示第一个参数。
for file in $1/*意味着将变量file与第一个参数中指定的目录中每个文件的名称的值进行循环。

$ 1是第一个命令行参数。 如果运行./asdf.sh abcde,那么$ 1将是a,$ 2将是b等。在带有函数的shell中,$ 1可以作为第一个函数参数,依此类推。