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 に答える