指定したディレクトリ内のファイルのパス一覧とディレクトリのパス一覧を出力するスクリプトを作成しました。
このスクリプトでは、①指定したディレクトリ内のファイル(ディレクトリ)一覧取得、②ファイルとディレクトリの判定、③配列への代入、④配列の表示を行っています。
①ファイル一覧を取得
“/home/user/”というディレクトリ配下のファイル一覧を表示する例です。
files="/home/user/*" for filepath in $files; do echo $filepath done
②ファイルとディレクトリの判定
・通常のファイルであるか判定
if [ -f $filepath ]
・ディレクトリであるか判定
if [ -d $filepath ]
③配列への代入
・空の配列を作成
fileary=()
・配列に要素を追加
変数$filepathの中身をfileary配列に追加
fileary+=(“$filepath”)
④配列の要素を参照、表示
・i番目の配列要素を参照
${fileary[i]}
・配列のすべての要素を表示
@というインデックスを使う
for i in ${fileary[@]}; do
echo $i
done
●サンプルコード
ファイル(ディレクトリを含む)一覧を取得し、ファイルとディレクトリに分けて配列に代入し、ファイルとディレクトリに分けて一覧を表示する。
#!/bin/bash
files="/home/user/*"
fileary=()
dirary=()
for filepath in $files; do
if [ -f $filepath ] ; then
fileary+=("$filepath")
elif [ -d $filepath ] ; then
dirary+=("$filepath")
fi
done
echo "ファイル一覧"
for i in ${fileary[@]}; do
echo $i
done
echo "ディレクトリ一覧"
for i in ${dirary[@]}; do
echo $i
done