我正在尝试使用命令行参数列出来自任意数量目录的文件。 我试图通过命令行传递目录路径并显示搜索目录中的文件。像这样的东西。 “目录:PATH1” 档 档 文件
“目录:PATH2” 档 文件
等。
所以我使用$ *来传递所有命令行参数,但它只显示第一个列出目录中的文件。
#!/bin/bash
cd $*
for filename in *
do
echo "Directory: $*"
echo $filename
done
答案 0 :(得分:2)
如果您在目录名称中有空格,可能需要使用“$ @”,并且检查目录是否存在并没有坏处:
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
答案 1 :(得分:0)
类似的东西应该有效:
dirs=$*
for dir in $dirs
do
echo "Directory: $dir"
for filename in $(ls $dir)
do
echo $filename
done
done