繁体   English   中英

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

[英]What does “$1/*” mean in “for file in $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表示使用变量file循环,该变量file具有第一个参数中指定的目录中每个文件的名称值。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM