Bashスクリプティング入門
変数、条件分岐、ループ、基本的なコマンド実行など、Bashスクリプティングの基礎を学びます。
「Bashスクリプティング入門」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
Bashスクリプトとは
Bashスクリプトの世界へようこそ。Bash(Bourne Again SHell)は、ほとんどのLinuxシステムで標準のコマンドラインインタープリターです。
Bashスクリプトは、一連のコマンドを含むテキストファイルです。通常はターミナルに手入力するタスクを自動化できます。
- 繰り返し作業を自動化して時間を節約できます。
- 複雑なコマンドの連続処理を1回の実行で行えます。
- サーバー管理用のカスタムツールを作成できます。
最初のスクリプト:Hello World
すべてのスクリプトはシバン行(#!/bin/bash)から始まります。これは、スクリプトに使用するインタープリターをシステムに伝えます。
次にコマンドを追加します。古典的な「Hello, World!」スクリプトを作成してみましょう。
#!/bin/bash
# This is a comment: The script says hello.
echo "Hello, CoddyKit!"
スクリプトを実行可能にする
スクリプトを(例:hello.shとして)保存したら、実行する権限を付与する必要があります。ファイルの権限を変更するchmodコマンドを使用します。
+xオプションで実行権限を付与します。これがないと、システムはそのファイルを実行するプログラムとして認識できません。
#!/bin/bash
# In a real terminal, you would run:
# chmod +x hello.sh
# ./hello.sh
echo "Permissions matter!"
変数を扱う
変数にはデータを格納します。Bashでは、名前に値を代入して変数を定義します。特別な宣言キーワードは必要ありません。
- 代入:
NAME=value(=の前後にスペースを入れません) - 参照:
$NAMEまたは${NAME}
メッセージを保存して表示してみましょう。
#!/bin/bash
MESSAGE="Welcome to scripting!"
echo $MESSAGE
コマンドと変数を組み合わせる
変数は標準のLinuxコマンドと組み合わせて使用できます。たとえば、ディレクトリ名を変数に保存し、lsでその内容を一覧表示できます。
変数の値を変更するだけで、コマンド自体を編集せずに済むため、スクリプトの柔軟性が高まります。
#!/bin/bash
TARGET_DIR="/tmp"
echo "Listing contents of $TARGET_DIR:"
ls $TARGET_DIR
条件分岐:if文
スクリプトでは、状況に応じた判断が必要になることがよくあります。if文を使うと、特定の条件が真の場合にだけコードを実行できます。
条件は通常、角括弧[ ]で囲みます。括弧と演算子の前後にはスペースを入れることを忘れないでください。
#!/bin/bash
NUMBER=10
if [ $NUMBER -gt 5 ]; then
echo "Number is greater than 5."
fi
elseとelifを追加する
ifの条件が偽の場合を処理するには、elseを使用します。複数の条件がある場合は、elif(else if)が便利です。
-eq:等しい-ne:等しくない-lt:より小さい-le:以下-gt:より大きい-ge:以上
#!/bin/bash
GRADE=85
if [ $GRADE -ge 90 ]; then
echo "You got an A!"
elif [ $GRADE -ge 80 ]; then
echo "You got a B!"
else
echo "Keep studying!"
fi
forによるループ
ループは、タスクを繰り返すために欠かせません。forループは、項目のリストや数値の範囲を順番に処理します。
複数のファイルやユーザー入力を処理したり、指定した回数だけ処理を実行したりする場合に便利です。
#!/bin/bash
for FRUIT in Apple Banana Orange;
do
echo "I like $FRUIT."
done
# Another common way: sequence
for i in {1..3};
do
echo "Count: $i"
done
whileによるループ
whileループは、指定した条件が真である間、コマンドの実行を続けます。ループ回数を正確に決められない場合に便利です。
最終的に条件が偽になる仕組みを必ず含めてください。そうしないと無限ループが発生します。
#!/bin/bash
COUNT=1
while [ $COUNT -le 3 ]; do
echo "The count is $COUNT."
COUNT=$((COUNT + 1))
done
Bashスクリプトの確認
この単純なBashスクリプトの出力はどうなりますか?
#!/bin/bash
NAME="Coddy"
AGE=5
if [ $AGE -gt 10 ]; then
echo "Hello, $NAME! You are a teen."
elif [ $AGE -eq 5 ]; then
echo "Hi, $NAME! You are young."
else
echo "Welcome, $NAME!"
fi
まとめ:Bashスクリプトの基本
よくできました。Bashスクリプトの基礎となる要素を学びました。
- シバン:
#!/bin/bashでインタープリターを指定します。 - 実行可能化:
chmod +xを使用してスクリプトを実行します。 - 変数:
NAME=valueでデータを保存し、$NAMEで参照します。 - 条件分岐:
-gtや-eqなどのテスト演算子を使い、if、elif、elseで判断を行います。 - ループ:
for(リストや範囲を反復)とwhile(条件が偽になるまで反復)でタスクを繰り返します。
これらの基本は、複雑なサーバータスクを自動化するための土台になります。
よくある質問
「Bashスクリプティング入門」レッスンは無料ですか?
はい。「Bashスクリプティング入門」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
「Bashスクリプティング入門」で何を学びますか?
変数、条件分岐、ループ、基本的なコマンド実行など、Bashスクリプティングの基礎を学びます。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Bashスクリプティング入門」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Bashスクリプティング入門
- サーバータスクの自動化
- スクリプトのエラー処理とログ出力
- 関数、引数、再利用可能なスクリプト