Windows 10 の Bash シェル の登場により、Windows 10 で Bash シェル スクリプトを作成して実行できるようになりました。Bash コマンドを Windows バッチ ファイルまたは PowerShell スクリプトに組み込むこともできます。
何をやっているのかはわかっていても、これは思ったほど簡単ではありません。 Windows と UNIX では使用する行末文字が異なり、Windows ファイル システムは Bash 環境の別の場所からアクセスできます。
Windows 10 で Bash スクリプトを作成する方法
Windows でシェル スクリプトを作成する場合、Windows と Linux などの UNIX 系システムでは、シェル スクリプト内のテキスト ファイルで異なる「行末」文字が使用されることに留意してください。
つまり、メモ帳で単純にシェルスクリプトを書くことはできないということです。ファイルをメモ帳に保存すると、Bash によって正しく解釈されなくなります。ただし、より高度なテキスト エディタを使用することもできます。たとえば、 Notepad++ では、[編集] > [EOL 変換] > [UNIX/OSX 形式] をクリックすると、ファイルに UNIX 行末文字を与えることができます。
ただし、Bash 環境自体でシェル スクリプトを記述するだけの方が良いでしょう。 Ubuntu ベースの Bash 環境には、 vi テキスト エディターと nano テキスト エディターの両方が付属しています。 vi エディターはより強力ですが、これまでに使用したことがない場合は、nano から始めることをお勧めします。初心者ならもっと使いやすいですよ。
たとえば、nano で bash スクリプトを作成するには、bash で次のコマンドを実行します。
nano ~/myscript.sh
これにより、ユーザー アカウントのホーム ディレクトリにある「myscript.sh」という名前のファイルを指す Nano テキスト エディタが開きます。 (「~」文字はホーム ディレクトリを表すため、フル パスは /home/username/myscript.sh になります。)
シェル スクリプトを次の行で開始します。
#!/bin/bash
実行するコマンドをそれぞれ別の行に入力します。スクリプトは各コマンドを順番に実行します。行の前に「#」文字を追加すると、その行が「コメント」として扱われます。これは、あなたや他の人がスクリプトを理解するのに役立ちますが、コマンドとして実行されるものではありません。より高度なテクニックについては、 Linux 上の Bash スクリプトに関する詳細なガイドを 参照してください。同じテクニックが Windows 上の Bash on Ubuntu でも機能します。
Bash 環境内から Windows プログラムを実行する方法はないことに注意してください。一般的な Linux システムと同様に、Linux ターミナルのコマンドとユーティリティに制限されます。
ここでは例として基本的な「hello world」スクリプトを使用します。
#!/bin/bash
# STRING 変数を設定する
STRING=”ハローワールド!”
# 変数の内容を画面に表示します
$STRING をエコーする
Nano テキスト エディターを使用している場合は、Ctrl+O を押してから Enter を押してファイルを保存できます。 Ctrl+X を押してエディタを閉じます。
スクリプトを実行可能にしてから実行する
おそらく、スクリプトを実行可能にして、より簡単に実行できるようにする必要があるでしょう。 Linux では、スクリプト ファイルに実行権限を与える必要があることを意味します。これを行うには、ターミナルでスクリプトを指定して次のコマンドを実行します。
chmod +x ~/myscript.sh
スクリプトを実行するには、ターミナルでパスを入力するだけで実行できるようになりました。今後スクリプトを起動する場合は、Bash シェルを開いてスクリプトへのパスを入力するだけです。
~/myscript.sh
(スクリプトが現在のディレクトリにある場合は、./myscript.sh を使用して実行できます)
Bash スクリプトで Windows ファイルを操作する方法
スクリプトで Windows ファイルにアクセスするには、Windows パスではなく、/mnt/c にあるファイルのパスを指定する必要があります。たとえば、C:\Users\Bob\Downloads\test.txt ファイルを指定する場合は、/mnt/c/Users/Bob/Downloads/test.txt パスを指定する必要があります。詳細については、 Windows 10 の Bash シェルのファイルの場所に関するガイドを 参照してください。
Bash コマンドをバッチまたは PowerShell スクリプトに組み込む方法
最後に、コマンドを組み込みたい既存のバッチ ファイルまたは
PowerShell スクリプト
がある場合は、
bash -c
コマンドを使用して Bash コマンドを直接実行できます。
たとえば、コマンド プロンプトまたは PowerShell ウィンドウで Linux コマンドを実行するには、次のコマンドを実行します。
bash -c "コマンド"
このトリックを使用すると、Bash コマンドをバッチ ファイルまたは PowerShell スクリプトに追加できます。 Bash コマンドの実行中に、Bash シェル ウィンドウが表示されます。
更新
: 複数の Linux 環境がインストールされている場合は、
wslconfig コマンドを使用して、
bash -c
コマンドの実行時に使用されるデフォルトの Linux 環境を選択できます。
Windows 内から Bash スクリプトへのショートカットを作成するには、通常どおりショートカットを作成するだけです。ショートカットのターゲットとして、上で概説した
bash -c
コマンドを使用し、作成した Bash スクリプトを指定します。
たとえば、ショートカットを「
bash -c "~/myscript.sh"
」に指定して、上記のサンプル スクリプトを実行します。コマンド プロンプトまたは PowerShell ウィンドウからこのコマンドを実行することもできます。





