初心者用にシェルスクリプトの練習問題を考えてみました。こちらは入門編です。正解例と解説はこちらのページを参照
http://g-network.boo.jp/wiki/2018/03/post-953/
①
シェル名 | shell_nyumon_01.sh |
処理内容 | echoコマンドで「Hello World」と表示させる。 ※HelloとWorldの間には半角3文字分のスペースをいれること |
※ポイント
1行目の記載方法
シェルの実行権限
②
シェル名 | shell_nyumon_02.sh |
処理内容 |
以下2つのlsコマンド(正常終了するパターンとエラー終了するパターン)をシェルで実行させ、両方の結果をshell_02.tmpに出力させること |
※ポイント
リダイレクト
標準出力とエラー出力
③
シェル名 | shell_nyumon_03.sh |
処理内容 | 実行日の日付(YYYYMMDDの形式)をコマンドで取得していったん変数DATEに代入し、その変数の値を表示する |
※ポイント
変数代入
コマンド置換
dateコマンド
④
シェル名 | shell_nyumon_04.sh |
処理内容 | シェルを実行した際に、引数付きで実行すると「引数あり」、引数なしで実行すると「引数なし」と表示されるようにする。またデバッグモードでもシェルを実行してみる |
※ポイント
if文の書き方
特殊変数
デバッグモード
⑤
シェル名 | shell_nyumon_05.sh |
処理内容 | 引数にファイルのフルパスを指定して、そのファイルが存在したら「ファイルあり」と出力させ、存在しなかったら「ファイルなし」と出力させる |
※ポイント
引数を使った処理(位置パラメータ)
条件式
⑥
シェル名 | shell_nyumon_06.sh |
処理内容 | 引数にファイルのパスを指定して、そのパスをlsし、戻り値が0ならばls結果を表示して終了コード0で終了、戻り値が0以外だったら「エラー終了」と表示し、終了コード1で終了させる。 |
※ポイント
コマンドの戻り値
特殊変数
終了コード
⑦
シェル名 | shell_nyumon_07.sh |
処理内容 | 引数に1か2かそれ以外を与えてシェルを実行した際に、それぞれ以下のような処理をすること 引数が1の場合 → 「引数は1です」と表示 引数が2の場合 → 「引数は2です」と表示 引数がそれ以外の場合 → 「正しい引数を入力してください」を表示 ※case文を使うこと |
※ポイント
case文の書き方
⑧
シェル名 | shell_nyumon_08.sh |
処理内容 | 引数に文字列を1つ以上与えて、ループ処理で全ての引数の文字列をechoで表示させる ※for文を使うこと |
※ポイント
for文の書き方
特殊変数
⑨
シェル名 | shell_nyumon_09.sh |
処理内容 | while文で3回だけループさせて以下のように出力させる (出力結果) 1回目 2回目 3回目 |
※ポイント
while文の書き方
インクリメント
⑩
シェル名 | shell_nyumon_10.sh |
処理内容 | while文を無限ループで実行し、3秒おきにdateコマンドを実行させる |
※ポイント
while文の無限ループのやり方
sleepコマンド
シェルスクリプトが分かってくると一気に楽しくなってきますよね。
でも、実はシェルスクリプトの文法だけ覚えても、実際の現場で使えるシェルスクリプトは書けません。なぜだか分かりますか?
現場で通用するシェルスクリプトを書くための知識について、以下の記事にまとめてみました。ぜひご覧ください。
シェルスクリプトは基本文法だけ勉強しても書けません
次は初級編にチャレンジ!
http://g-network.boo.jp/wiki/2018/02/post-895/
コメント