Windowsコマンドプロンプトで.shを実行する方法


132

Windows 7のコマンドプロンプトで.shを実行するにはどうすればよいですか?この行を実行しようとすると、常にこのエラーが発生します。

app/build/build.sh

エラー、

'app' is not recognized...

または、

bash app/build/build.sh

エラー、

'bash' is not recognized...

私が見逃したアイデアはありますか?

ここで画面をつかみます ここに画像の説明を入力してください


6
(おそらく)cygwinが必要です。Windowsでシェル(.sh)スクリプトを実行しようとしてい.shますが、これがWindowsでファイルを実行する唯一の方法です。
ha9u63ar 2014年

回答:


54

エラーメッセージは、インストールされていないbashか、インストールされていないことを示していますPATH

Googleのトップヒットはhttp://win-bash.sourceforge.net/ですが、ほとんどのBashスクリプトはUnixのような環境を想定していることも理解する必要があります。したがって、Bashをインストールするだけでは、この特定の使用シナリオ用に特別に設計されていない限り、ネット上で見つけたスクリプトを実行できる可能性は低いです。これに対する通常の解決策はhttps://www.cygwin.com/ですが、実現したいことによっては、多くの代替案があります。

Windowsが使用シナリオの中心ではない場合、無料のOS(おそらく仮想化)をインストールするのが最も簡単な方法です。

2番目のエラーメッセージは、Windowsが名目上、スラッシュをディレクトリセパレータとして受け入れるためですが、このコンテキストでは、スイッチセパレータとして解釈されます。つまり、Windowsはコマンドラインを次のように解析しますapp /build /build.sh(または、Unixオプションの規則で言い換えると、app --build --build.sh)。試すこともできますがapp\build\build.sh、上で概説した状況のため、うまくいくとは思えません。


1
もちろん、Windows 10では、WSLを有効にして、Windows内に実際のコンピューターを設置することができます。
tripleee

147

GITをインストールします。GITのインストール中に、オプションを選択してGIT BashをWindowsコンテキストメニューに追加します。インストール後、フォルダーを右クリックして選択しGIT Bash Here(添付の画像を参照)、次のようにshコマンドを使用します。

sh test.sh

ここに画像の説明を入力してください


1
私にはうまくいきません。コマンドプロンプトウィンドウが開いてすぐに閉じます。
desbest 2017

27
GITがインストールされている場合は、PATHシステム変数にへのパスを追加できますsh.exe。私の場合はそれがでした:c:\Program Files\Git\bin。その後sh .\script.sh、PowerShellから実行します
elshev 2017

1
これは、2020年のWindows 10の魅力のように私にとっては機能します!コピー/ペーストコマンドは私のために働いていないが、それは固定されているようにctrl-insshift-ins
ナムG VU

51

.shファイルを実行する最も一般的な方法は、shコマンドを使用することです。

C:\>sh my-script-test.sh 

他の良いオプションはCygWinをインストールすることです

内に配置されています。Windowshome

C:\cygwin64\home\[user]

たとえばmy-script-test.sh、次のようにbashコマンドを使用してファイルを実行します。

jorgesys@INT024P ~$ bash /home/[user]/my-script-test.sh 

43
特別な対策を講じていない限りsh、Windowsでコマンドを実行することはできません。
user2357112は、モニカの

1
OK -1、コマンドラインからshにアクセスするにはチュートリアルを追加する必要があるということですか???
Jorgesys

41
答えは、あたかもsh任意のWindowsコマンドプロンプトで入力して機能させることができるかのように提示されます。
user2357112は、モニカの

msys2は、shコマンドを取得するのに適した場所です。チェックアウトgithub.com/userzimmermann/MSYS2-cmdをあなたはCMDでそれを使用したい場合は
Aralox

3
sh「Bashのインストール」インストールオプションを選択した場合、BashおよびコマンドはGit4Windowsとともにインストールされます。
Joel Ellis

13

cmderも使用できます

Cmderは、Windowsに優れたコンソールエミュレーターがないことに対する純粋な不満から作成されたソフトウェアパッケージです。素晴らしいソフトウェアに基づいており、モノカイの配色とカスタムプロンプトレイアウトが加味され、最初からセクシーに見えます

スクリーンショット

cmder.net


1
一般的なUnixシェルコマンドを含むオプションのアドオンパックが付属しているように見えますが、ベースパッケージはの単なる置き換えのようですcmd
tripleee 2016

5

Windows 10 Anniversary Updateでは、Windowsのubuntuでbashを使用してシェルコマンドを実行するのがさらに簡単になりました

私はx-wrt ​​r7000 netgearルーターに自分の地域を設定しようとしていましたが、Windowsのubuntuでbashを使用して次のことが機能することがわかりました。

ssh admin@192.168.1.1 < /mnt/c/ccode-eu.sh

実行される場合があります。しかし、それは完全に異なる環境です。
TamusJRoyce 2018

4

Windowsの新機能-WindowsでUbuntuでbashを実行-ビルド会議後にWindows 10の「インサイダー」ビルドで利用可能:

https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/


かっこいいですが、どうやってshファイルを実行しますbashか?実行しようとすると、ウィンドウが点滅して消えます。開いているbashウィンドウにファイルをドラッグアンドドロップすると、パスが見つからなかったと表示されます(別の規則を使用しているため)。
m93a 2017年

最近、Windowsで.shファイルを実行することは可能ですか?今は試すことはできませんが、興味があります
。– JesusMurF

1
私はそれを自分自身を試していないが、Windows上のshを実行する方法については、マイクロソフトによってガイドがあります:docs.microsoft.com/en-us/windows/wsl/install-win10
claudiu.nicola

@ m93a Ubuntuターミナルウィンドウでbash path/to/script、スクリプトを実行します。shUbuntuにも確かにあります。スクリプトに適切なシバンと権限がある場合はpath/to/script、シバンで指定されたrnterpreterを使用してスクリプトを実行します。
tripleee

4

個人的にはこのバッチファイルを使用しましたが、CygWinをインストールする必要があります(図のように64ビット)。ファイルタイプ.SHをこのバッチファイル(私の場合はExecSH.BAT)に関連付けるだけで、.SHをダブルクリックして実行できます。

@echo off
setlocal

if not exist "%~dpn1.sh" echo Script "%~dpn1.sh" not found & goto :eof

set _CYGBIN=C:\cygwin64\bin
if not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & goto :eof

:: Resolve ___.sh to /cygdrive based *nix path and store in %_CYGSCRIPT%
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%~dpn1.sh"') do set _CYGSCRIPT=%%A
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%CD%"') do set _CYGPATH=%%A

:: Throw away temporary env vars and invoke script, passing any args that were passed to us
endlocal & %_CYGBIN%\mintty.exe -e /bin/bash -l -c 'cd %_CYGPATH%;  %_CYGSCRIPT% %*'

このオリジナル作品に基づいています。


0

ここで説明されているように、Windows 10 Bashシェル、別名Linuxサブシステム、またはUbuntuをWindows 10で使用しています

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