仕上げの例題
では、ここまでのコマンドの復習を兼ねて、次の5つの例題を解いてみましょう。
問1
「/root/dir」ディレクトリに、「sample1.txt」というファイルが存在したら削除するシェルスクリプト「reidai.sh」を作成してください。
問2
問1で作ったシェルスクリプトを実行してください。
問3
「/root/dir」ディレクトリに「sampleX.txt」というファイル(Xには1~100までの値が入る)が 存在したら削除するシェルスクリプトを、for文を使って作成してください。
問4
標準入力された文字列のファイルが 「/root/dir」ディレクトリに存在したら削除するシェルスクリプトを、readコマンドを使って作成してください。
例題の解答
問1の正解
if
文を使います。
#!/bin/bash cd /root/dir if [ -f sample1.txt ] then rm sample1.txt fi
問2の正解
実行権限を付与してから実行します。
# chmod 755 reidai.sh # ./reidai.sh
問3の正解
if
文はなくて構いませんが、for
文の中でif
文を使用する例として記述しています。
#!/bin/bash cd /root/dir for i in `seq 1 100` if [ -f sample${i}.txt ] then rm sample${i}.txt fi
問4の正解
read
コマンドを使って取得した入力値を、if
文の中で使用します。
#!/bin/bash cd /root/dir read str if [ -f ${str} ] then rm ${str} fi
まとめ
今回はシェルスクリプトの作成について学びました。シェルスクリプトは業務で作成することが多々あるかと思いますので、 今回説明した構文を覚えておくと役に立つ場面があるでしょう。また、既存のスクリプトを読み解くにあたっても必要になります。
「LPIC102」試験の範囲「105.1」で登場するシェル環境の設定ファイルなども、シェルスクリプトを学んだ上で見てみると理解が深まるはずですよ。