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

ナビゲーションに移動 検索に移動
文字列「source lang」を「syntaxhighlight lang」に置換
(文字列「source lang」を「syntaxhighlight lang」に置換)
7行目: 7行目:
if文の演算子で、-eを使用することでファイルが存在することを確認することができる。<br>
if文の演算子で、-eを使用することでファイルが存在することを確認することができる。<br>
以下のシェルスクリプトでは、test.txtファイルが存在するか確認して、ファイルが存在する場合、File exists.と表示する。<br>
以下のシェルスクリプトでは、test.txtファイルが存在するか確認して、ファイルが存在する場合、File exists.と表示する。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
21行目: 21行目:
つまり、! -eと記述することで、ファイルが存在しない場合に真となる。<br>
つまり、! -eと記述することで、ファイルが存在しない場合に真となる。<br>
以下のシェルスクリプトでは、test.txtファイルが存在しない場合に、File not exists.と表示する。<br>
以下のシェルスクリプトでは、test.txtファイルが存在しない場合に、File not exists.と表示する。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
37行目: 37行目:
if文の演算子で、-dを使用することでディレクトリが存在することを確認することができる。<br>
if文の演算子で、-dを使用することでディレクトリが存在することを確認することができる。<br>
以下のシェルスクリプトでは、testディレクトリが存在する場合、Directory exists.と表示する。<br>
以下のシェルスクリプトでは、testディレクトリが存在する場合、Directory exists.と表示する。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
51行目: 51行目:
つまり、! -dと記述することで、ディレクトリが存在しない場合に真となる。<br>
つまり、! -dと記述することで、ディレクトリが存在しない場合に真となる。<br>
以下のシェルスクリプトでは、testディレクトリが存在しない場合に、Directory not exists.と表示する。<br>
以下のシェルスクリプトでは、testディレクトリが存在しない場合に、Directory not exists.と表示する。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  #!/bin/bash
  #!/bin/bash
   
   
131行目: 131行目:
ワイルドカード(*)を使用して、カレントディレクトリ内のファイルを順に処理することができる。
ワイルドカード(*)を使用して、カレントディレクトリ内のファイルを順に処理することができる。
以下の例では、全てのファイルを繰り返し処理している。
以下の例では、全てのファイルを繰り返し処理している。
  <source lang="sh">
  <syntaxhighlight lang="sh">
  for FILENAME in *; do
  for FILENAME in *; do
     echo "$FILENAME"
     echo "$FILENAME"
139行目: 139行目:
特定の拡張子を持つファイルのみを列挙する場合は、以下のように記述する。
特定の拡張子を持つファイルのみを列挙する場合は、以下のように記述する。
以下の例では、全てのPNGファイルを繰り返し処理している。
以下の例では、全てのPNGファイルを繰り返し処理している。
  <source lang="sh">
  <syntaxhighlight lang="sh">
  for PNGFILE in *.png; do
  for PNGFILE in *.png; do
     echo "$PNGFILE"
     echo "$PNGFILE"
146行目: 146行目:
<br>
<br>
また、次のように1行で記述することもできる。
また、次のように1行で記述することもできる。
  <source lang="sh">
  <syntaxhighlight lang="sh">
  for PNGFILE in *.png; do echo "$PNGFILE"; done
  for PNGFILE in *.png; do echo "$PNGFILE"; done
  </source>
  </source>
153行目: 153行目:
以下の例では、findコマンドで検索したファイルを、while文で順に処理している。
以下の例では、findコマンドで検索したファイルを、while文で順に処理している。
深い階層にあるファイルも再帰的に処理される。
深い階層にあるファイルも再帰的に処理される。
  <source lang="sh">
  <syntaxhighlight lang="sh">
  find . -type f | while read FILENAME; do
  find . -type f | while read FILENAME; do
     echo "$FILENAME"
     echo "$FILENAME"
171行目: 171行目:
==== テキストファイルを1行のみ読み込む ====
==== テキストファイルを1行のみ読み込む ====
readコマンドは、ユーザからの入力の他に、ファイルからの入力を1行のみ読み込むことができる。<br>
readコマンドは、ユーザからの入力の他に、ファイルからの入力を1行のみ読み込むことができる。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  # 実行
  # 実行
  read line < list.txt
  read line < list.txt
183行目: 183行目:
ファイルを標準入力へリダイレクトさせて、ファイル内容を1行ずつ読み込ませる。<br>
ファイルを標準入力へリダイレクトさせて、ファイル内容を1行ずつ読み込ませる。<br>
以下の例では、list.txtファイルの内容を読み込み、1行ずつechoコマンドで表示させている。<br>
以下の例では、list.txtファイルの内容を読み込み、1行ずつechoコマンドで表示させている。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  # 実行
  # 実行
  while read line
  while read line
199行目: 199行目:
ファイル内容をcatコマンドで表示させて、それを変数に格納し、ヒアドキュメントを使用して読み込む。<br>
ファイル内容をcatコマンドで表示させて、それを変数に格納し、ヒアドキュメントを使用して読み込む。<br>
以下の例では、list.txtファイル内容を変数DATAに格納して、ヒアドキュメントを使用して変数の内容を読み込んでいる。<br>
以下の例では、list.txtファイル内容を変数DATAに格納して、ヒアドキュメントを使用して変数の内容を読み込んでいる。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  DATA=`cat ./list.txt`
  DATA=`cat ./list.txt`
  while read line
  while read line
217行目: 217行目:
ファイル内容をcatコマンドで表示させて、その結果をパイプを使用して読み込む。<br>
ファイル内容をcatコマンドで表示させて、その結果をパイプを使用して読み込む。<br>
以下の例では、lixt.txtファイルの内容をcatコマンドで表示させて、その結果をパイプでwhile readコマンドに渡している。<br>
以下の例では、lixt.txtファイルの内容をcatコマンドで表示させて、その結果をパイプでwhile readコマンドに渡している。<br>
  <source lang="sh">
  <syntaxhighlight lang="sh">
  # 実行
  # 実行
  cat ./list.txt | while read line
  cat ./list.txt | while read line

案内メニュー