「シェルスクリプトの基礎 - ファイルとディレクトリ」の版間の差分

ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
1行目: 1行目:
== 概要 ==
== 概要 ==
シェルスクリプトでファイルやディレクトリが存在しているかを確認する方法を記載する。<br>
シェルスクリプトにおいて、ファイルとディレクトリに関する処理を記載する。<br>
ここでは、確認するためにif文を使用している。<br>
<br><br>
<br><br>


29行目: 28行目:
  if [ ! -e $FILE ];then
  if [ ! -e $FILE ];then
     echo "File not exists."
     echo "File not exists."
    exit -1
  fi
  fi
  </source>
  </source>
58行目: 58行目:
  if [ ! -d $DIR ];then
  if [ ! -d $DIR ];then
     echo "Directory not exists."
     echo "Directory not exists."
    exit -1
  fi
  fi
  </source>
  </source>
111行目: 112行目:
|}
|}
</center>
</center>
<br><br>
== ファイルの処理 ==
==== ワイルドカードの使用 ====
ワイルドカード(*)を使用して、カレントディレクトリ内のファイルを順に処理することができる。
以下の例では、全てのファイルを繰り返し処理している。
<source lang="sh">
for FILENAME in *; do
    echo "$FILENAME"
done
</source>
<br>
特定の拡張子を持つファイルのみを列挙する場合は、以下のように記述する。
以下の例では、全てのPNGファイルを繰り返し処理している。
<source lang="sh">
for PNGFILE in *.png; do
    echo "$PNGFILE"
done
</source>
<br>
また、次のように1行で記述することもできる。
<source lang="sh">
for PNGFILE in *.png; do echo "$PNGFILE"; done
</source>
<br>
==== findコマンドの結果の使用(再帰処理) ====
以下の例では、findコマンドで検索したファイルを、while文で順に処理している。
深い階層にあるファイルも再帰的に処理される。
<source lang="sh">
find . -type f | while read FILENAME; do
    echo "$FILENAME"
done
</source>
<br><br>
== テキストファイルの読み込み ==
while文とreadコマンドを組み合わせて使用すると、テキストファイルの内容を1行ずつ処理できる。
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:シェルスクリプト]]
[[カテゴリ:シェルスクリプト]]

案内メニュー