Windows10でBashシェルスクリプトを作成して実行する方法

Windows 10のBashシェルの登場により、Windows 10でBashシェルスクリプトを作成して実行できるようになりました。BashコマンドをWindowsバッチファイルまたはPowerShellスクリプトに組み込むこともできます。

自分が何をしているのかを知っていても、これは必ずしも見た目ほど単純ではありません。WindowsとUNIXは異なる行末文字を使用し、WindowsファイルシステムはBash環境の異なる場所からアクセスできます。

Windows10でBashスクリプトを作成する方法

関連:Windows10にLinuxBashシェルをインストールして使用する方法

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上のUbuntuのBashでも機能します。

Bash環境内からWindowsプログラムを実行する方法はないことに注意してください。通常のLinuxシステムの場合と同じように、Linuxターミナルのコマンドとユーティリティに制限されます。

たとえば、ここでは例として基本的な「helloworld」スクリプトを使用してみましょう。

#!/ bin / bash#STRING変数を設定しますSTRING = "Hello World!" #変数の内容を画面に出力しますecho $ STRING

Nanoテキストエディタを使用している場合は、Ctrl + Oを押してからEnterキーを押すことでファイルを保存できます。Ctrl + Xを押してエディターを閉じます。

スクリプトを実行可能にしてから実行する

スクリプトを実行可能にして、より簡単に実行できるようにすることをお勧めします。Linuxでは、スクリプトファイルに実行可能ファイルのアクセス許可を与える必要があることを意味します。これを行うには、ターミナルで次のコマンドを実行し、スクリプトをポイントします。

chmod + x〜 / myscript.sh

スクリプトを実行するには、パスを入力してターミナルで実行するだけです。将来スクリプトを起動するときはいつでも、Bashシェルを開いて、スクリプトへのパスを入力するだけです。

〜/ myscript.sh

(スクリプトが現在のディレクトリにある場合は、。/ myscript.shを使用して実行できます)

BashスクリプトでWindowsファイルを操作する方法

関連:WindowsでUbuntu Bashファイル(およびBashでWindowsシステムドライブ)にアクセスする方法

スクリプト内のWindowsファイルにアクセスするには、Windowsパスではなく、/ mnt / cの下にパスを指定する必要があります。たとえば、C:\ Users \ Bob \ Downloads \ test.txtファイルを指定する場合は、/ mnt / c / Users / Bob / Downloads /test.txtパスを指定する必要があります。詳細については、Windows10のBashシェルでのファイルの場所に関するガイドを参照してください。

BashコマンドをバッチまたはPowerShellスクリプトに組み込む方法

関連:Windows10でデフォルトのLinuxディストリビューションを設定する方法

最後に、コマンドを組み込む既存のバッチファイルまたはPowerShellスクリプトがある場合は、コマンドを使用してBashコマンドを直接実行できますbash -c

たとえば、コマンドプロンプトまたはPowerShellウィンドウでLinuxコマンドを実行するには、次のコマンドを実行できます。

bash -c "コマンド"

このトリックを使用すると、BashコマンドをバッチファイルまたはPowerShellスクリプトに追加できます。Bashコマンドの実行中は、Bashシェルウィンドウが表示されます。

更新:複数のLinux環境がインストールされている場合は、wslconfigコマンドを使用して、bash -cコマンドの実行時に使用されるデフォルトのLinux環境を選択できます。

Windows内からBashスクリプトへのショートカットを作成するには、通常のようにショートカットを作成します。ショートカットのターゲットとして、bash -c上記で概説したコマンドを使用し、作成したBashスクリプトをポイントします。

たとえば、bash -c "~/myscript.sh"上記のサンプルスクリプトを実行するには、ショートカットを「」にポイントします。このコマンドは、コマンドプロンプトまたはPowerShellウィンドウから実行することもできます。