【初心者向け】Linux演習問題:シェルスクリプト編

  • このエントリーをはてなブックマークに追加
  • Pocket

シェルスクリプトの理解は進んだだろうか?

このページではシェルスクリプトの演習問題を用意してみた。ぜひ理解度チェックに試してみていただきた。

Linuxシェルスクリプトの演習問題

  1. 「bash」シェルのバージョンを確認してみよう。
  2. 「bash」のプログラムファイルが何処にあるのか「which」コマンドで確認してみよう。
  3. 「echo」コマンドを使用して「hello_world」と表示してみよう。
  4. 「echo」で表示した文字列を「testfile」にリダイレクトしてみよう。
  5. パイプを使用してみよう。「ls」コマンドの結果をパイプで「sort」コマンドへ繋ごう。
  6. 「sh」ファイルを作成して「chmod」で実行権限を与えてみよう。
  7. 「sh」の一行目にスクリプトとして必要な文字列を記述しよう。
  8. 「sh」シェルスクリプトに「#」でコメントを記述してみよう。
  9. 「bash」シェルスクリプト「sh」で「echo」を利用して「hello_world」と表示してみよう。
  10. 「var-hello_world.sh」というファイルを作成して、スクリプト内で変数「STR=hello_world」と代入、それを「echo」で表示させてみよう。
  11. 「if」文を使用して条件分岐してみよう。「if-gt.sh」を作成し「$NUM」の値が0より大きければ「True」と表示させてみよう。
  12. 「for-list.sh」というファイルを作成し、「for」文を使用して文字列「one two three」をリスト表示してみよう。
  13. 「while-line.sh」というファイルを作成し「while」文と「read」文を組み合わせて「/etc/fstab」の中身を一行づつ表示してみよう。
  14. 「test-func.sh」というファイルを作成し、「hello_world」と表示する「myfunc」という関数を作成して実際に「myfunc」を呼出してみよう。

解答は下記に用意している。

 

 

 

解答

演習解答1

bashのバージョンを確認したい場合は「bash --version」とすると確認が出来る。

bash-version

演習解答2

whichコマンドを使用すると、そのプログラムファイルがどこにあるのかパスを表示してくれる。シェルスクリプトを記述するときに1行目にシェルのパスを打ちこむ必要があるため、確認しておこう。

which-bash

演習解答3

echoコマンドを使用するとechoコマンドに渡した文字列が表示される。なお「$」などから始まる文字列の場合変数参照扱いになる。

echo-hello_world

演習解答4

リダイレクトとは「入出力先を変更する」ことをさす。今回の場合

$ echo hello_world > testfile

などとすれば良い。

re-echo

演習解答5

「ls| sort」とするとlsの内容がソートされて表示される。lsとsortの間にあるものを「パイプ」と言う。パイプはあらゆるコマンドを連結出来る。数にこれといった制限はないが大概の場合2つほどで用事は片付くはずだ。

ls-sort

演習解答6

touchもしくはエディタなどで作成したファイルを、スクリプトとして実行するには実行権限を与える必要がある。「chmod 755 hellow_world.sh」とするのが一般的だ。もしくは他人に実行されたくない場合は「chmod 700 hellow_world.sh」とするとよいだろう。

touch-hello_world-sh

演習解答7

bashシェルスクリプトの場合一行目には「#!シェルのパス」を記述する必要がある。今回の場合「#!/usr/bin/bash」と記述する必要がある。

演習解答8

コメントをスクリプト内にのこしたい場合は行頭に「#」と記述する。その行はコメントとなり、コマンドとして解釈されなくなる。

演習解答9

シェルスクリプトを実行して「hello_world」と表示する場合

などとするとスクリプトで「hello_world」を表示できる。

演習解答10

bashでは$を先頭につけた文字列を変数参照として扱うことになっている。

とすると「hello_world」が表示される。

hello_wold-sh

演習解答11

if文を使うと条件分岐ができる。今回の「$NUM」の値が0より大きい場合「True」と表示されるようになっている。

if-gt

演習解答12

for文を利用すると主にリストによる繰り返しが可能となる。

for-list

演習解答13

whileとreadを組み合わせるとファイルを一行づつ表示してくれる。よく使われる例なので丸暗記してしまってもかまわないだろう。今回は「fstab」を表示させてみた。一行づつ表示されているが、連続して表示しているためファイル内容がすべて表示される。

while-line

演習解答14

関数を利用することで処理を部品化することができる。今回は単純にechoを実行する関数を作成してみる。

なおfunctionは省略してもかまわない。関数を呼出したい場合は単に関数名をスクリプトに記述すればよい。

引数をうけとる場合は、名前につづけて引数を指定する。書式的には「関数の名前 引数...」となる。今回の例では引数はとっていないので「myfunc」とすればよい。

test-func

まとめ

このページではLinuxシェルスクリプトの演習問題をご紹介してきた。理解度チェックや腕試しに使っていただければ幸いだ。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*

ゼロからエンジニアを目指す方へ
短期間でエンジニアになる方法

必要な勉強や技術の最新動向、本当に使えるIT資格、学習に役立つ国からの奨励金などの情報を無料でお届け

資料を見てみる