Windowsでシェルスクリプトを実行するにはどうすればよいですか?[複製]


23

私はMacユーザーであり、Windowsを初めて使用します。Windowsでシェルスクリプトを実行するにはどうすればよいですか?

通常、テキストファイルに拡張子.shを付けて保存し、ターミナル経由で実行します。しかし、Windowsでこれを行うにはどうすればよいですか?


1
バッチファイル。en.wikipedia.org/wiki/Batch_file
ケナニア

2
Windowsで実行する予定のスクリプトの例を提供できますか?

1
既存の.shシェルスクリプトを実行しようとしていますか?または、Windows用のスクリプトの作成方法を知りたいですか?
ケルタリ

回答:


30

.sh通常、接尾辞が付いたスクリプトはBourneシェルスクリプト(またはbash、ksh、またはzsh-Bourneシェルから派生したすべてのシェル)です。(MacOSを含むUnixライクなシステムでは、.sh接尾辞は不要であることに注意してください。OS #!/bin/shはスクリプトの先頭の行を見て、実行方法を決定します。)

WindowsはBourneのようなシェルを提供しません。

WindowsでUnixのような環境を提供するCygwinをインストールできますが、特に「ネイティブ」な環境はありません。(編集者コメント:Cygwinは、Windowsを使用する必要があるが、実際にはUnixを使用したい私のような人々に最適です。)

MinGWやMicrosoftが提供するWindows Services for UNIXパッケージなど、Windowsで実行される他のUnixライクなサブシステムがあります。

または、Unixに似たシェルスクリプトを作成して実行する代わりに、Windowsバッチファイルを作成できます。これらは、一般的に持っている.batか、.cmd接尾辞を。Windowsの対話型コマンドプロンプトと同じコマンドと構文を使用します。

比較的新しいWindows PowerShellもあります。私はそれについてよく知りませんが、それについて良いことを聞いたことがあります。


3
私は、リモートコンピューターの再起動やリモートコンピューター上のサービスのシャットダウンから、Active Directoryからコンピューター名のリストを取得し、それらをアルファベット順に並べ、テストするためのすべてのスクリプトを作成したPowerShellユーザーとして、Powershellの提案を支持します特定のサービスと大規模で複雑なファイルの移動。Windowsで文字通りすべて実行できます。
ちょうちん

1
cygwinはスクリプトの実行を許可しますが、基になるシステム(つまり、利用可能なバイナリ、ファイルシステムレイアウトなど)について何らかの仮定を行うと、正しく実行されない可能性があることに注意して
ください-Daenyth


2

Winでは、一般的な拡張子は.batまたは.cmdです。Windowsシェルで使用されるコマンドの適切なソースはss64です-CMDおよびPowerShell用。

Cygwinは「必須」ではありません。Linuxスタイルを提供しているだけです。WinでBASHを使用してください。


2

UWINはどうですか?

UWINは、David Kornによって作成されたコンピューターソフトウェアパッケージであり、オペレーティングシステムUnix用に作成されたプログラムをMicrosoft Windows上でビルドして実行し、変更はほとんどありません。ソフトウェア開発の一部はインドのウィプロに下請けされました。

このUWINを確認してください-Unix for Windows

UWINの顕著な特徴

  1. Windows上のUnixからほとんどすべてのコマンドラインツールへのアクセス。正確には245個のコマンドラインツール。
  2. オリジナルのUnixコンパイラ「cc」に加えて、「make」などの多数のツールと、ソースコードをほとんどまたはまったく変更せずにWindowsマシン上でUnixアプリケーションをビルドおよび実行できる必要なライブラリがバンドルされています。
  3. Visual C ++やMingwなどの他のコンパイラを使用してプログラムをコンパイルするオプション。本格的なPerlパッケージ。
  4. XアプリケーションをWindows上で開発したい人向けのX Windowsライブラリ。これらのアプリケーションをWindowsで実行するには、UWINにバンドルされていないXサーバーが必要です。
  5. UWINには、コントロールパネルアプレット( 'Start-> Settings-> Control Panel-> UWIN'からアクセス)が付属しており、これを使用してUWINシステムパラメータの一部を構成できます。

UWINの使用

  • UNIXアプリケーションをWindowsでネイティブにフルスピードで実行します。
  • WindowsでUnixコマンドラインツールの全機能を使用します。
  • UWINにバンドルされているkornシェルは、UNIXユーザーがWindows環境で快適に過ごせるようにします。
  • Windows上でUNIXアプリケーションを開発および実行します。
  • WindowsプラットフォームでXアプリケーションを開発します。

UWINの欠点

  • UWINにはXサーバーがバンドルされていないため、ユーザーはWindowsでXアプリケーションを実行できません。ただし、このギャップを埋めることができるサードパーティの商用Xサーバーがあります。
  • UWINはGPLに基づいてリリースされていませんが、無料でダウンロードし、教育および非営利目的で使用できます

そのソフトウェアは、私が大学にいたときにLinux Commandを教えるために使用されました。


参照:WikiPedia

Cygwinは、Microsoft Windows用のUnixライクな環境およびコマンドラインインターフェイスです。

Cygwinは、Windowsベースのアプリケーション、データ、およびその他のシステムリソースと、Unixライクな環境のアプリケーション、ソフトウェアツール、およびデータとのネイティブな統合を提供します。

Interix
Interixは、Services for Unix(SFU)リリース3.0および3.5のコンポーネントです(この最後のものは自由に配布されます)。

Interixの最新リリース5.2および6.0は、Windows Server 2003 R2、Windows Vista EnterpriseおよびUltimateエディションのコンポーネントであり、Windows 7にはSUA(Unixベースアプリケーション用サブシステム)バージョン6.1が含まれています。 EnterpriseおよびUltimate)およびWindows Server 2008 R2(すべてのエディション)


2

Windows 10のAnniversaryアップデートでこれを行う別の方法があります。WindowsでBash(Ubuntu)シェルを使用できるようになりました。

この機能を使用するには、デフォルトで有効になっていないため、機能をインストールする必要があります。

  1. Control Panel-> Programs->に移動しTurn Windows Features On and Offます。

  2. のチェックボックスを選択しますWindows Subsystem for Linux (Beta)。これにより、機能がインストールされ、再起動が求められます。

そして、あなたが実行を介してコマンドプロンプトを開くことができます- > cmdその後、入力するbashか、実行- > bash.exe

これにより、仮想マシン、Cygwin、またはvirtualboxのないbashシェルが提供されます。


1

ここでの既存の回答はその時点では正しかったものの、Windows 10にオプションでフルbashシェルを実行するUbuntuの修正バージョンが含まれています

インストールしたら、bashプロンプトを開き(OS X / macOSのターミナルを開くのと同じように)、スクリプトを通常どおりに実行できます。

chmod +x myscript.sh
./myscript.sh

Windowsから直接スクリプトを実行する場合、同じディレクトリにショートカットを作成し、「ターゲット」を次のように設定できます。

C:\Windows\System32\bash.exe -c "./myscript.sh"

スクリプトのパスがショートカットの場所に関連している場合(上記の例のように)、[開始]フィールドも空白であることを確認します。


0

CygWinが必要になります。実行するだけでできると思います。

sh yourscript.sh

0

ケナニアによるコメントで正しい答えが出されました。バッチファイルを使用する必要があります。シェルコードファイルに* .batという名前を付ける必要があります。それをクリックするか、単にターミナルにその名前を入力して実行できます。Windowsターミナルは、unixターミナルとまったく同じように機能しないことに注意してください。Web上のコマンドと構文に関する多くのヘルプとチュートリアルがあります。Windows PowerShellを使用する可能性もあります。これは、よりUnixに似ているようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.