Menu
CoddyTech

スクリプト内の変数

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

変数を使うと、スクリプトの柔軟性と再利用性が高まります。値をハードコードする代わりに、変数に格納してスクリプト全体で参照できます。

スクリプト内で変数を作成するには、ターミナルで学んだのと同じ構文を使います。等号の前後にスペースを入れません。変数の値を使うには、名前の前にドル記号を付けます。

#!/bin/bash
greeting="Hello"
name="World"
echo "$greeting, $name!"

このスクリプトはHello, World!を出力します。変数greetingとnameには、スクリプトの実行時に置き換えられるテキストが格納されます。

同じ値を複数回使う必要がある場合、変数は特に便利です。ファイルパスを複数の場所で参照する場合、変数に格納しておけば、変更する必要があるのは一度だけです。

#!/bin/bash
backup_dir="/home/user/backups"
echo "Creating backup in $backup_dir"
mkdir -p "$backup_dir"

"$backup_dir"を囲む引用符に注目してください。変数を二重引用符で囲むのは、スペースを含むパスや値を正しく扱えるため、よい習慣です。引用符がないと、/my documentsのようなパスによってコマンドが正しく動作しなくなります。

スクリプト内の変数はターミナル内の変数と同じように機能しますが、スクリプトの実行中にしか存在しません。スクリプトが終了すると、それらの変数は消えてしまいます。

challenge icon

チャレンジ

簡単

変数を使って個人向けのメッセージを表示する、intro.shというシェルスクリプトを作成してください。

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

  1. シバン行(#!/bin/bash)で始める
  2. 値がBashの、languageという変数を作成する
  3. 値がscriptingの、skillという変数を作成する
  4. echoを使って、次の形式で両方の変数を出力する:Learning Bash scripting!

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

Learning Bash scripting!

書き込む各行をsingle quotesで囲んでください:echo 'echo "Hello $name"' >> script.sh。single quotesを使うと、ファイルの書き込み中にシェルが$nameを置換しないため、スクリプトには変数がそのまま残り、実行時に展開されます。Double quotesを使うと、値がすぐに置換されます。

ヒント:リダイレクトとechoを使ってスクリプトを作成してください。echo "Learning $language $skill!"のように、echo文では$を使って変数を参照することを忘れないでください。

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

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