Linux標準教科書の第9章を読みました。
章末テストの解答と解説を自分の言葉でまとめます。
この記事を書いているぼくは実務経験1年。独学で未経験から従業員300名以上の自社開発企業へ転職しました。実務ではVue.jsとRailsを毎日書いています。
目次
第9章の章末テストの解答・解説
(1) 実行結果が解になるように、変数”LPI”に入力した値を出力しなさい。
$ LPI=linux
$ echo ( )
linux
解答・解説
正解は以下のとおりです。
$ LPI=linux
$ echo $LPI
linux
変数を参照する際は変数名の前に $ をつけます。
(2) 以下のスクリプトの空欄を埋め、カレントディレクトリにファイル lpi.txt が存在しているか 確認するスクリプトを完成させなさい。
#!/bin/bash
if [ -f lpi.txt ]; then
echo file exists.
( )
echo file does not exists.
( )
解答・解説
正解は以下のとおりです。
#!/bin/bash
if [ -f lpi.txt ]; then
echo file exists.
else
echo file does not exists.
fi
(3) 以下のスクリプトの空欄を埋め、カレントディレクトリ内のすべてのファイル(サブディレク トリを除く)の種類を表示するスクリプトを完成させなさい。
#!/bin/bash
for i in `ls`
do
if [ ! -d $i ]; then
file $i
fi
( )
解答・解説
正解は以下のとおりです。
#!/bin/bash
for i in `ls`
do
if [ ! -d $i ]; then
file $i
fi
done
(4) 次の動作をするシェルスクリプトを書きなさい。
- 実行すると、age:として年齢の入力を促される。
- 20 以上の値を入れると’you can drink.’と出力される。
- 20 未満の値を入れると、’you cannot drink.’と出力される。
解答・解説
正解は以下のとおりです。
#!/bin/bash
echo -n age:; read age
if [ $age -ge 20 ]; then
echo "you can drink."
else
echo "you cannot drink."
fi
(5)bash で、シェルスクリプトの中身を表示しながら実行(デバッグ)するにはどのようにしたら よいか答えなさい。
この問題は記述式です。
解答・解説
正解は「sh コマンドに -x オプションをつけてシェルスクリプトを実行する」です。
sh -x ./sample.sh
のように実行することで、コマンドや変数の中身を表示しながらスクリプトを実行可能です。
おわりに
ぼくはシェルスクリプトを仕事で書く場面には遭遇していないですが、SREチームのエンジニアなどはたまに書かれているイメージです。
コメント