スクリプト内の変数
CoddyのTerminalジャーニー「基礎」セクションの一部 — レッスン 68/82。
変数はスクリプトを柔軟で再利用可能にします。値をハードコーディングする代わりに、変数に保存してスクリプト全体で参照できます。
スクリプト内で変数を作成するには、ターミナルで学んだのと同じ構文を使用します:等号の周りにスペースを入れません。変数の値を使用するには、その名前の前にドル記号を付けます:
#!/bin/bash
greeting="Hello"
name="World"
echo "$greeting, $name!"このスクリプトは Hello, World! を出力します。greeting と name の変数は、スクリプト実行時に置換されるテキストを格納します。
変数は、同じ値を複数回使用する必要がある場合に特に便利になります。ファイルパスを複数の場所で参照する場合、それを変数に保存すると、1回だけ変更すれば済みます:
#!/bin/bash
backup_dir="/home/user/backups"
echo "Creating backup in $backup_dir"
mkdir -p "$backup_dir""$backup_dir" の周りの引用符に注目してください。変数を二重引用符で囲むのは良い習慣です。これにより、スペースを含むパスや値を正しく扱えます。引用符がない場合、/my documents のようなパスはコマンドを壊してしまいます。
スクリプト内の変数は、ターミナル内と同じように動作しますが、スクリプトが実行されている間だけ存在します。スクリプトが終了すると、それらの変数は消えます。
チャレンジ
簡単intro.sh という名前のシェルスクリプトを作成し、変数を使用してパーソナライズされたメッセージを表示してください。
スクリプトは次の要件を満たしてください:
- シェバン行(
#!/bin/bash)で開始してください languageという変数を作成し、値にBashを設定してくださいskillという変数を作成し、値にscriptingを設定してくださいechoを使用して両方の変数をLearning Bash scripting!の形式で出力してください
スクリプトを実行可能にし、実行してください。出力は次のようになるはずです:
Learning Bash scripting!ヒント:
echoとリダイレクトを使用してスクリプトを作成してください。echo 文で変数を参照する際は$を使用することを忘れずに、例:echo "Learning $language $skill!"
チートシート
Bash スクリプト内の変数は、スクリプト全体で参照できる値を格納します。等号の周りにスペースを置かずに変数を作成し、変数名に $ を付けてその値にアクセスします:
#!/bin/bash
greeting="Hello"
name="World"
echo "$greeting, $name!"スペースを含む値を正しく扱うために、常に変数を二重引用符で囲みます:
backup_dir="/home/user/backups"
echo "Creating backup in $backup_dir"
mkdir -p "$backup_dir"変数はスクリプトが実行されている間のみ存在し、スクリプトが終了すると消えます。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。