0

我正在尝试使用命令行参数从任意数量的目录中列出文件。我正在尝试通过命令行传递目录路径并显示搜索目录中的文件。像这样的东西。“目录:PATH1”文件文件文件

“目录:PATH2”文件文件

等等

所以我使用 $* 来传递所有命令行参数,但它只显示第一个列出的目录中的文件。

#!/bin/bash


cd $*
for filename in *
do
        echo "Directory: $*"
        echo $filename
done
4

2 回答 2

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
于 2013-02-05T17:16:15.097 回答
0

与此类似的东西应该可以工作:

dirs=$*
for dir in $dirs
do
  echo "Directory: $dir"
  for filename in $(ls $dir)
  do
        echo $filename
  done
done
于 2013-02-05T16:10:36.953 回答