“$ 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
答
它看作是一个目录
在bash脚本参数文件传递到脚本为$0
(这是脚本的名称)的第一个参数的水珠,然后$1
,$2
,$3
...要访问所有人,请使用他们的标签,或者使用组构造之一。对于组构造有$*
和[email protected]
。 ($*
考虑所有的参数作为一个块,其中作为[email protected]
认为它们通过$IFS
分隔)
答
$1
装置的第一个参数。 for file in $1/*
意味着循环变量file
具有在第一个参数中命名的目录中每个文件的名称的值。
答
$ 1是第一个命令行参数。如果运行./asdf.sh a b c d e,那么$ 1将是a,$ 2将是b等。在带有函数的shell中,$ 1可以作为第一个函数参数,等等。