Menu
Coddy logo textTech

まとめ - 数字当てゲーム

CoddyのTerminalジャーニー「基礎」セクションの一部。レッスン 73/82。

challenge icon

チャレンジ

簡単

guesser.sh という名前のシェルスクリプトを作成し、固定された推測値の並びを使った数当てゲームをシミュレートしてください。

スクリプトでは、次のことを行ってください。

  1. shebang 行(#!/bin/bash)から開始する
  2. secret という変数に値 5 を設定する
  3. guess という変数に初期値 0 を設定する
  4. guesssecret と等しくない間、継続する while ループを使用する
  5. ループ内で、guess を 1 増加させる
  6. if 文を使って推測値を確認する:
    • guesssecret より小さい場合、次を出力する: Guess [guess]: Too low!
    • guesssecret と等しい場合、次を出力する: Guess [guess]: Correct!

スクリプトを実行可能にして実行してください。出力は次のようになります。

Guess 1: Too low!
Guess 2: Too low!
Guess 3: Too low!
Guess 4: Too low!
Guess 5: Correct!

1 行ごとに echo を 1 つ使って複数行のスクリプトを書くこともできますが、もっと短い方法があります。ヒアドキュメントを使うと、終了語までのすべての内容をそのままファイルに書き込めます。

cat > script.sh << 'EOF'
#!/bin/bash
echo "hello"
EOF

'EOF' を囲む引用符によって、ファイルの書き込み中に $variables が展開されないようになります。これは、スクリプト自体で変数を使用する場合に必要な動作です。

ヒント: while 条件で「等しくない」を表すには -ne、if 文で「より小さい」を表すには -lt、「等しい」を表すには -eq を使用してください。各ループの反復の開始時に、guess=$((guess + 1)) で推測値を増加させます。

自分で試してみよう

ターミナル

基礎のすべてのレッスン

自分で練習してみよう: Terminalプレイグラウンド