blog

テクノロジー|初心者のためのBashシェルスクリプト入門

タイトルが示すように、この記事では初心者のためのBashシェルスクリプトを取り上げます。...

Oct 22, 2025 · 6 min. read
シェア

問題が示すように、この記事では初心者向けのBashシェルスクリプトを取り上げます。この記事ではBashの歴史はレビューしませんが、読者がBashについて学びやすくする多くのリソースがありますし、読者は GNUプロジェクトを直接訪問することもできます。非常に基本的な概念を理解することから始まり、その知識を積み重ねていきます。

スクリプトファイルの作成

まず、スクリプトファイルを作りましょう。カレントディレクトリがホームディレクトリであることを確認してください。

  1. touch learnToScript.sh

この時点で、ホームディレクトリに learnToScript.sh 名前のファイルが生成されます。次のコマンドを入力してファイルが存在することを確認し、パーミッションが-rw-rw-r-であることにも注意してください。

  1. [zexcon@trinity ~]$ ls -l
  2. total 7
  3. drwxr-xr-x. 1 zexcon zexcon 90 Aug Desktop
  4. drwxr-xr-x. 1 zexcon zexcon 80 Sep Documents
  5. drwxr-xr-x. 1 zexcon zexcon 1222 Sep Downloads
  6. -rw-rw-r--. 1 zexcon zexcon 70 Sep learnToScript.sh
  7. drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Music
  8. drwxr-xr-x. 1 zexcon zexcon 318 Sep Pictures
  9. drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Public
  10. drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Videos
  11. [zexcon@trinity ~]$

正式に始めるには、もう一つすべきことがあります。コマンドラインに次のように入力して、何も書かずにスクリプトを実行してみてください:

  1. ./learnToScript.sh
  1. [zexcon ~]$ ./learnToScript.sh
  2. bash: ./learnToScript.sh: Permission denied

ファイルに実行パーミッションがないため、プロンプトのパーミッションが拒否されます。従って、スクリプトを実行するには、ファイルのパーミッションを変更する必要があります。パーミッションに詳しくない場合は、 Paul W. Frields による Fedora Magazine の記事を読むことをお勧めします。

パーミッションについてすでに知っているとして、ターミナルに戻って learnToScript.sh ファイルを変更し、実行パーミッションを追加します。次のように入力します:

  1. chmod 755 learnToScript.sh
  1. [zexcon@trinity ~]$ ls -l
  2. total 7
  3. drwxr-xr-x. 1 zexcon zexcon 90 Aug Desktop
  4. drwxr-xr-x. 1 zexcon zexcon 80 Sep Documents
  5. drwxr-xr-x. 1 zexcon zexcon 1222 Sep Downloads
  6. -rwxr-xr-x. 1 zexcon zexcon 70 Sep learnToScript.sh
  7. drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Music
  8. drwxr-xr-x. 1 zexcon zexcon 318 Sep Pictures
  9. drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Public
  10. drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Videos
  11. [zexcon@trinity ~]$

これですべての準備が整い、 ./learnToScript.sh コマンドの読み取り、書き込み、実行権限が与えられました。

スクリプトファイルの編集

コマンドプロンプトで次のように入力してください:

  1. vim learnToScript.sh

これで、波線の記号がたくさん入った空のテキストファイルが開きます。キーボードで i と入力すると挿入モードになります。ターミナルウィンドウの左下を見れば、そのモードになっていることが確認できます。

次のステップは、ファイルが正しいインタープリターに認識されることを確認することです。したがって、#! と入力し、ディレクトリ /bin/bashbashを実行します:

  1. #!/bin/bash

この記事のチュートリアルのステップで最後にすることは、文書を保存することです。Escを押して入力モードを終了し、Shift+:を押します。コロンのところに wq と入力し、Enter キーを押してファイルを書き込み、vim エディタを終了します。

ドキュメントに書き込むには i をタイプし、その時点で下に -INSERT- と表示されることを vim を使うときに覚えておいてください。ドキュメントを保存するには、Esc を押して入力モードを終了し、Shift+: を押しながら w をタイプしてファイルに書き込むか、Esc を押しながら Shift+: を押しながら q をタイプして保存せずに終了するか、wq を繋げて書き込んでファイルを閉じます。Escを押すと挿入モードが終了します。vimについての詳しい情報は 公式サイトや チュートリアルのサイトを ご覧ください。

正式にスクリプトの執筆を開始

echo コマンド

echoコマンドは、一重引用符、二重引用符、または引用符なしで、ターミナルに何らかの情報を返すために使われます。それでは、伝統的な Hello World で試してみましょう!

  1. #!/bin/bash
  2. echo Hello World!
  3. echo 'Hello World!'
  4. echo "Hello World!"
  1. [zexcon ~]$ ./learnToScript.sh
  2. Hello World!
  3. Hello World!
  4. Hello World!
  5. [zexcon ~]$

上の3行が同じ結果を与えていることに注目してください。一重引用符、二重引用符、引用符なしでも同じ結果になるとは限りませんが、この基本的なスクリプトでは同じ結果になります。場合によっては、引用符の種類によって結果が異なることもあります。この時点で、最初のBashスクリプトが書けたことを祝福します。さらに多くのスクリプトを作成し、自分のアイデアを自由に発揮していくうちに、以下についてさらに学びたくなるかもしれません。

コマンドは $ と ` ` を置き換えます。

コマンド置換は次のような効果があります:コマンドラインでコマンドを実行した結果を取得し、その結果を変数に書き込みます。例えば、コマンドプロンプトで ls と入力すると、現在の作業ディレクトリのリストを取得できます。このコマンドで練習してください。コマンド置換のオプションは2つあります。1つ目はキーボードの左側にあるTabキーの上にあるバックスティックを使うことに注意してください。波線の~と同じキーです。2つ目のオプションはシェル変数を使用します。

  1. #!/bin/bash
  2. command1=`ls`
  3. echo $command1
  4. command2=$(ls)
  5. echo $command2
  1. [zexcon ~]$ ./learnToScript.sh
  2. Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos
  3. Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos
  4. [zexcon ~]$

変数、等号、コマンドの先頭の間にスペースがないことに注意してください。両方のオプションを使用すると、まったく同じ結果になります。変数はドル記号で始まる必要があることに注意してください。ドル記号のないコマンド変数を忘れて echo すると、以下のようにコマンド名だけが出力されます:

  1. #!/bin/bash
  2. command1=`ls`
  3. echo command1
  4. command2=$(ls)
  5. echo command2
  1. [zexcon ~]$ ./learnToScript.sh
  2. command1
  3. command2
  4. [zexcon ~]$

二重括弧 )

では、二重括弧は何に使うのでしょうか? 簡単に言うと、二重括弧は数学の方程式で使われます。

  1. #!/bin/bash
  2. echo $((5+3))
  3. echo $((5-3))
  4. echo $((5*3))
  5. echo $((5/3))
  1. [zexcon ~]$ ./learnToScript.sh
  2. [zexcon ~]$

結論

経由

Read next