bashでは、特定のディレクトリのすべてのファイル名を配列に入れる必要があります。さらに、私のディレクトリに3つのファイル:file1.txt
、file2.txt
、file3.txt
がある場合は、各ファイルが配列内の1つの要素になるようにする必要があります。ディレクトリ内のすべてのファイル名を配列に入れよう
echo $arr
{file1.txt, file2.txt, file3.txt}
bashでは、特定のディレクトリのすべてのファイル名を配列に入れる必要があります。さらに、私のディレクトリに3つのファイル:file1.txt
、file2.txt
、file3.txt
がある場合は、各ファイルが配列内の1つの要素になるようにする必要があります。ディレクトリ内のすべてのファイル名を配列に入れよう
echo $arr
{file1.txt, file2.txt, file3.txt}
var=(...)
で配列変数を作成します。現在のディレクトリ内のすべてのファイルのグロブは*
です。一緒:
for file in "${files[@]}"; do
echo "$file"
done
またはアクセス個々の要素:
echo "${files[0]}"
echo "${files[1]}"
echo "${files[2]}"
注二重引用符の賢明な使用
files=(*)
echo "${files[@]}"
あなたは、配列をループすることができます。それらは、空白やその他の特殊文字を含むファイルが正しく扱われるようにします。
ほとんどのシンプルなソリューションを使用することです:
shopt -s nullglob dotglob
files=(*)
配列は、 '*'要素を取得して終了しないように、それは '(*)=ファイル'前に 'shopt -s nullglob'を設定することが良いことです空のディレクトリ。 – codeforester