我正在尝试使用命令行参数从任意数量的目录中列出文件。我正在尝试通过命令行传递目录路径并显示搜索目录中的文件。像这样的东西。“目录:PATH1”文件文件文件
“目录:PATH2”文件文件
等等
所以我使用 $* 来传递所有命令行参数,但它只显示第一个列出的目录中的文件。
#!/bin/bash
cd $*
for filename in *
do
echo "Directory: $*"
echo $filename
done
万一您在目录名称中有空格,您可能想要使用“$@”,并且检查目录是否存在并没有什么坏处:
for dir in "$@" ; do
if [ -d "$dir" ] ; then
echo "Directory: $dir"
ls "$dir" # If all you want is to show the contents, this should do
else
echo "Not a directory: $dir"
fi
done
与此类似的东西应该可以工作:
dirs=$*
for dir in $dirs
do
echo "Directory: $dir"
for filename in $(ls $dir)
do
echo $filename
done
done