スクリプト内の変数
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 のようなパスによってコマンドが正しく動作しなくなります。
スクリプト内の変数はターミナル内と同じように機能しますが、スクリプトの実行中にのみ存在します。スクリプトが終了すると、それらの変数は消えます。
チャレンジ
簡単変数を使用してパーソナライズされたメッセージを表示する、intro.sh という名前のシェルスクリプトを作成してください。
スクリプトでは、次のことを行ってください。
- シバン行(
#!/bin/bash)で始める - 値が
Bashのlanguageという変数を作成する - 値が
scriptingのskillという変数を作成する echoを使用して、次の形式で両方の変数を出力する:Learning Bash scripting!
スクリプトを実行可能にして実行してください。出力は次のようになります。
Learning Bash scripting!書き込む各行を一重引用符で囲んでください:
echo 'echo "Hello $name"' >> script.sh。一重引用符を使うと、ファイルの書き込み中にシェルが$nameを置き換えるのを防げるため、スクリプト内に変数が保持され、実行時に展開されます。二重引用符を使うと、値がすぐに置き換えられてしまいます。
ヒント:リダイレクト付きの
echoを使用してスクリプトを作成してください。echo文では、echo "Learning $language $skill!"のように、変数を$付きで参照することを忘れないでください。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド