web-dev-qa-db-ja.com

Windowsでシェルスクリプトを実行する方法を教えてください。

私はMacユーザーで、Windowsを初めて使います。 Windowsでシェルスクリプトを実行する方法を教えてください。

一般的に、私はテキストファイルを拡張子.shで保存し、それをターミナル経由で実行します。しかし、どうすればWindowsでそれができますか?

22
Terminator

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

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

あなたは Cygwin をインストールすることができます。これはWindowsの下でUnixライクな環境を提供します - しかしそれは特に「ネイティブな」環境を持っていません。 (編集コメント:Cygwinは、Windowsを使用する必要があるが、実際にはUnixを使用するほうがよい私のような人々には最適です。)

Microsoftが提供する MinGW および Windows Services for UNIX パッケージを含む、Windowsで動作する他のUnixライクなサブシステムがあります。

あるいは、Unixライクなシェルスクリプトを書いて実行しようとする代わりに、Windowsバッチファイルを書くことができます。これらは通常.batまたは.cmd接尾辞を持ちます。 Windowsの対話式コマンドプロンプトと同じコマンドと構文を使用します。

比較的新しい Windows PowerShell もあります。私はそれ自体はなじみがありませんが、それについて良いことを聞いたことがあります。

29
Keith Thompson

あなたは Cygwin を使うことができます。それはWindowsでLinuxのような環境を提供します。

6
ChandanK

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. Windows上でXアプリケーションを開発したい人のためのXウィンドウライブラリ。これらのアプリケーションをWindowsで実行するには、UWINにバンドルされていないXサーバーが必要です。
  5. UWINにはコントロールパネルアプレットが付属しています( 'スタート - >設定 - >コントロールパネル - > UWIN'からアクセスできます)。これを使ってUWINシステムパラメータを設定することができます。

UWINの使い方

  • UNIXアプリケーションをWindowsでネイティブにフルスピードで実行します。
  • Windows上のUnixコマンドラインツールをフルに活用してください。
  • UWINにバンドルされているKornシェルは、Windows環境でUNIXユーザーをまるで自宅にいるように感じさせます。
  • Windows上でUNIXアプリケーションを開発して実行します。
  • WindowsプラットフォームでXアプリケーションを開発します。

UWINの欠点

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

私が大学にいたとき、そのソフトウェアは私たちにLinux Commandを教えるために使われていました..本当に良いもの..


参照: WikiPedia

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

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

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

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

2
Niranjan Singh

これを行うには、Windows 10用の アニバーサリーアップデート を使用する別の方法があります。 WindowsにBash(Ubuntu)シェルが利用可能になりました。

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

  1. Control Panel - > Programs - > Turn Windows Features On and Offに行きます。

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

それからrun - > cmdでプロンプトを出してからbashと入力するかrun - > bash.exeと入力してください。

これにより、仮想マシンやCygwin、または仮想ボックスのないbashシェルが得られます。

2
Matt

Winでは、一般的な拡張子は.batまたは.cmdです。 Windowsシェルで使用されるコマンドの良い情報源は、 ss64 - CMDおよびPowerShell用です。

Cygwin は必須ではありません。それはちょうどあなたにLinuxスタイルを与えている - WinでBASHを使うこと。

2
Bakudan

ここでの既存の答えはその時点では正しかったが、Windows 10 does は現在オプションで フルbashシェルを実行しているUbuntuの修正版 を含む。

インストールしたら、bashプロンプトを開いて(OS X/macOSの端末のように)通常通りスクリプトを実行できます。

chmod +x myscript.sh
./myscript.sh

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

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

スクリプトのパスがショートカットの場所を基準にしている場合(上の例のように)、[開始位置]フィールドも空白になっていることを確認してください。

1
Molomby

正しい答えはKenaniahによるコメントで与えられました、あなたは バッチファイル を使わなければなりません。シェルコードファイルに* .batという名前を付ける必要があります。それをクリックするか、単に端末に名前を入力して実行できます。 windows端末はunix端末とまったく同じようには動作しないことに注意してください。あなたはウェブ上でコマンドや構文に関する多くのヘルプとチュートリアルを見つけるでしょう。 Windows PowerShell を使用する可能性もあります。これは、よりunix風のようです。

0
Michael K

あなたはCygWinが必要です、そしてそれから私はあなたがただ走ることができるとあなたが思うと思います:

sh yourscript.sh
0
dpl47