Bashスクリプト入門:「Hello World」を表示する方法
このチュートリアルでは、ターミナルに「Hello World」と表示するシンプルなBashスクリプトの作成方法と実行方法を学びます。Bashスクリプトの基本的な書き方を理解する第一歩として、ぜひ実際に手を動かしながら試してみてください。
シバン(#!)とは
すべてのシェルスクリプトは、シバン(Shebang)と呼ばれる #! という記号で始まります。これはスクリプトの1行目に必ず記述し、そのスクリプトをどのインタプリタで実行するかをシェルに伝える重要な役割を持っています。
#!/bin/bash
...
上記の例では、「このスクリプトは /bin/bash にあるBashインタプリタを使って実行してください」という意味になります。
Hello World Bashスクリプトの作成
それでは、ターミナルに「Hello World」と表示するBashスクリプトを実際に作成していきましょう。
まず、hello_world.sh という名前のファイルを作成します。ターミナルで以下のコマンドを実行してください。
$ touch hello_world.sh
これで空のファイルが作成されました。
次に、お好みのエディタでこのファイルを開きます。ここでは例としてnanoエディタを使用します。
$ nano hello_world.sh
ファイルが開いたら、以下の2行を入力して保存しましょう。
#!/bin/bash
echo "Hello World"
echo コマンドは、引数に渡された文字列をターミナルに出力するための基本的なコマンドです。
シェルスクリプトの実行方法
作成したスクリプトを実行して、実際に「Hello World」を表示してみましょう。シェルスクリプトの実行方法はいくつかあります。
$ sh ./hello_world.sh ## 誤り
$ ./hello_world.sh ## 正しい
$ bash ./hello_world.sh ## 正しい
それぞれの実行方法の違い
1番目の方法が誤りな理由: sh を指定すると、Bashではなくshインタプリタでスクリプトを実行することになります。shはBashのサブセットであり、Bash固有の機能が使えない場合があります。
2番目の方法が正しい理由: スクリプトを直接実行すると、ファイル内の1行目に記述されたシバン(#!/bin/bash)に従って、定義されたインタプリタが自動的に使用されます。
3番目の方法が正しい理由: 明示的に bash インタプリタの使用を指定しており、これはファイル内で定義されているインタプリタと同じであるため問題なく動作します。
「Permission denied」エラーが出たときの対処法
スクリプトを以下のように実行しようとしたとき、
$ ./hello_world.sh
-bash: ./hello_world.sh: Permission denied
「Permission denied(権限がありません)」というエラーが表示されることがあります。これは、作成したばかりのスクリプトファイルに実行権限が付与されていないことが原因です。
chmod コマンドを使えば、スクリプトに実行権限を付与できます。
$ chmod +x ./hello_world.sh
実行権限を付与した後、もう一度スクリプトを実行すると、「Hello World」が正しく表示されます。
$ ./hello_world.sh
Hello World
まとめ
今回は、Bashスクリプトの基本となる以下のポイントを学びました。
- スクリプトの1行目にはシバン(
#!/bin/bash)を記述する echoコマンドで文字列を出力できる- スクリプトは
./スクリプト名.shまたはbash スクリプト名.shで実行する - 実行権限がない場合は
chmod +xで権限を付与する
この基本をマスターすれば、変数や条件分岐、ループなどを使ったより実用的なスクリプト作成へとステップアップできます。
-
BashスクリプトとImageMagickで画像処理を自動化する方法
ライターの仕事は言葉だけではありません。特にテクニカルライティングでは、技術やプロセスを伝えるために大量のスクリーンショットを扱うことがよくあります。さらに、公開プラットフォームごとに画像フォーマットやファイルサイズなど、異なる要件が課されることも少なくありません。 ITコンサルタント兼システムエンジニアとして、私はクライアントへの納品物として数多くの技術文書を作成してきました。当時はMicrosoft Word(.doc)形式が求められるのが一般的でした。文書はコンテンツを追加するたびにあっという間に肥大化していきます。初期のスクリーンショットはビットマップ(.bmp)形式が主流で、ファイル
-
星空観察の夜に役立つ!Linuxのナイトビジョン用Bashスクリプト「redscreen.sh」の使い方
Linuxはサーバーや開発者の環境で使われることがよく話題になりますが、実は天文学の分野でも幅広く活用されています。Linux向けには、星図やスカイマップ、望遠鏡駆動システムを制御するインターフェースなど、天体観測に役立つツールが数多く存在します。しかし、天文学者にとって大きな課題のひとつが、暗闇の中で目の順応を保ちながらコンピューターを操作することです。 なぜ「暗順応」を守る必要があるのか 夜間の屋外で観測を行う際、天文学者は「暗順応(ダークアダプテーション)」と呼ばれる目の状態を維持しなければなりません。人間の目が薄暗い環境に完全に慣れるまでには、最大で30分ほどかかるとされています。とこ