練習問題:スクリプト基礎(変数/条件/ループ)(Lv2〜4/8問)

1ファイルのシェルスクリプトで、引数・分岐・繰り返し・関数の基礎を固めます。
想定時間:各5〜8分

1) 変数に代入して表示する

問題:変数 NAME"Bash" を代入し、「Hello, Bash!」と表示するスクリプトを作ってください。

解答例

#!/bin/bash
NAME=”Bash”
echo “Hello, $NAME!”

2) 引数を受け取って挨拶する

問題:スクリプトの第1引数を名前として受け取り、「Hi, ○○!」と表示してください。

解答例

#!/bin/bash
NAME=$1
echo “Hi, $NAME!”

3) if 文で条件分岐する

問題:引数に与えた数値が 10以上なら “big”、それ以外は “small” と表示してください。

解答例

#!/bin/bash
NUM=$1
if [ “$NUM” -ge 10 ]; then
echo “big”
else
echo “small”
fi

4) for ループで1から5まで出力する

問題:1 から 5 までを for ループで順に出力してください。

解答例

#!/bin/bash
for i in 1 2 3 4 5; do
echo $i
done

5) while ループでカウントダウンする

問題:変数 n=3 から 0 まで while ループでカウントダウンして表示してください。

解答例

#!/bin/bash
n=3
while [ $n -ge 0 ]; do
echo $n
n=$((n-1))
done

6) 関数を定義して呼び出す

問題:関数 greet を定義し、引数の名前に対して「Welcome, ○○!」と表示してください。

解答例

#!/bin/bash
greet() {
echo “Welcome, $1!”
}
greet “Linux”

7) ファイルの存在チェック

問題:引数で受け取ったファイルが存在すれば「found」、なければ「not found」と表示してください。

解答例

#!/bin/bash
FILE=$1
if [ -f “$FILE” ]; then
echo “found”
else
echo “not found”
fi

8) 引数で受けた複数ファイルを順に処理

問題:引数で受けたファイル名を for ループで順に表示してください。

解答例

#!/bin/bash
for f in “$@”; do
echo “Processing $f”
done

学習のヒント

  • 変数展開"$VAR" を基本にすると安全
  • 条件式[ ... ] を使い、数値比較は -ge -eq など
  • ループは for / while を使い分け
  • 関数function name { ... }name() { ... }
  • “$@” で「すべての引数」を展開できる

この8問で、シェルスクリプトの基礎文法をひと通り押さえられます。

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする