Linux の基本操作演習をやってみましょう。今回はシェルスクリプトについて扱います。
問題文で提示された操作を行い、結果を確認して下さい。
※本演習はUbuntuの環境を想定しています。
この記事はシリーズ記事です。全シリーズはこちらからご覧になれます。
第1問
下記の操作を実行し、[結果]と同様であることを確認してください。
①ホームディレクトリにシェルスクリプトshell_1.sh
を作成
②ホームディレクトリに空のファイルhome.log
を作成
③shell_1.sh
に対し、下記の要件を満たすようなコマンドを記載要件:ホームディレクトリのファイル一覧と今日の日付を ホームディレクトリのhome.logというファイルに「追記」する
④shell_1.sh
を2回実行する
⑤home.log
を確認する
[結果]
・home.log
に、ホームディレクトリのファイル一覧と日付が2回記載されている
◆実行例◆
①touch shell_1.sh
②touch home.log
③vi shell_1.sh!/bin/bash
date >> ~/home.log
ls ~ >> ~/home.log
④sh shell_1.sh
sh shell_1.sh
⑤cat home.log
第2問
下記の操作を実行し、[画面出力例]と同じ事が出来る事を確認してください。
①ホームディレクトリにシェルスクリプトshell_2.sh
を作成
②shell_2.sh
に対し、下記の要件を満たすようなコマンドを記載要件:キーボードから名前と生年月日を入力すると、入力された情報を表示フォーマットに沿って画面表示する
表示フォーマット: あなたの名前は「{入力した名前}」、生年月日は「{入力した生年月日}」です。
③shell_2.sh
を実行する
[画面出力例]
名前を入力してください。
メディア太郎
生年月日を入力してください。
2024年12月25日
あなたの名前は「メディア太郎」、生年月日は「2024年12月25日」です。
◆実行例◆
①touch shell_2.sh
②vi shell_2.sh!/bin/bash
echo 名前を入力してください。
read NAME
echo 生年月日を入力してください。
read BIRTHDAY
echo あなたの名前は「$NAME」、生年月日は「$BIRTHDAY」です。
③sh shell_2.sh
第3問(応用)
下記の操作を実行し、[結果]と同様であることを確認してください。
①ホームディレクトリにシェルスクリプトshell_3.sh
を作成
②shell_3.sh
に対し、下記の要件を満たすようなコマンドを記載要件:位置パラメータで入力した数字が6の倍数であるか調べ、6の倍数の場合は「○○は6の倍数です」、そうでない場合は「○○を6で割った余りは××です」と画面表示する
③shell_3.sh
を実行する。実行する際、位置パラメータは102を与える。
④shell_3.sh
を実行する。実行する際、位置パラメータは105を与える。
[画面出力例]
◆位置パラメータ102を与えた時
102は6の倍数です
◆位置パラメータ105を与えたとき
105を6で割った余りは3です。
◆実行例◆
①touch shell_3.sh
②vi shell_3.sh!/bin/bash
if [ $(($1 % 6)) -eq 0 ]; then
echo $1は6の倍数です
else
echo $1を6で割った余りは$(($1 % 6))です
③sh practice3.sh 102
④sh practice3.sh 105