Linuxマシンで実行するために使用するシェルスクリプトがたくさんあります。ここで、Windowsに切り替えました。そこで、これらのスクリプトを実行する必要があります。 Cygwin がインストールされていますが、Cygwinを使用してスクリプトを実行する方法はありますが、呼び出しはWindowsバッチから行われます?
承知しました。私の(かなりバニラの)Cygwinセットアップでは、bash
はc:\cygwin\bin
にあるため、次のようなコマンドを使用して、Windowsバッチファイルからbash
スクリプト(たとえばtestit.sh
)を実行できます。
C:\cygwin\bin\bash testit.sh
... .bat
ファイルに含めることができるのは、コマンドラインで入力するのと同じくらい簡単で、同じ効果があります。
もう1つ-\r\n
行末を生成するWindowsテキストエディターでシェルスクリプトを編集した場合、cygwinのbashは\r
を受け入れません。スクリプトを実行する前にdos2unix testit.sh
を実行するだけです:
C:\cygwin\bin\dos2unix testit.sh
C:\cygwin\bin\bash testit.sh
WindowsでNotepad ++エディターにアクセスできる場合、この問題を簡単に回避できる機能があります。
私はこれを行い、問題を解決しました。
お役に立てれば!
詳細は http://danieladeniji.wordpress.com/2013/03/07/Microsoft-windows-cygwin-error-r-command-not-found/
ディレクトリの下のすべてのファイルにdos2unix修正を適用するためにこれを実行できることを追加したかっただけです。
find . -type f -exec dos2unix.exe {} \;
私はローマの答えに対するコメントとしてそれをしたいと思いますが、私はまだコメントにアクセスできません。
既存の回答はすべて、DOSコンソールウィンドウでこのスクリプトを実行しているようです。
これは受け入れられるかもしれませんが、たとえば、カラーコード(テキストの色を変更する)は機能せず、代わりにそのまま出力されることを意味します。
アイテム「[032mGroovy [0m」はありません
しばらく前にこの解決策を見つけたので、mintty.exe
が標準のCygwinユーティリティかどうか、またはそれを取得するためにsetup
プログラムを実行する必要があるかどうかはわかりませんが、次のように実行します。
D:\apps\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico bash.exe .\myShellScript.sh
...これにより、Windows DOSコンソールではなくCygwin BASHコンソールでスクリプトが実行されます。
スクリプトファイル名に常に.shを含めることを気にしない場合は、CygwinとUnix(Macbook)に同じスクリプトを保持できます。
説明する:
1。常に.shをスクリプトファイル名に含めます(例:test1.sh)
2。 test1.shは、例として次のようになります。#!/bin/bash echo '$0 = ' $0 echo '$1 = ' $1 filepath=$1
</ code> 3. Cygwinを使用するWindowsでは、「test1.sh」と入力して実行します
4。 Unixでは、「test1.sh」と入力して実行します
注:Windowsでは、エクスプローラーを使用して以下を1回実行する必要があります。
1。ファイルエクスプローラーを開きます
2。 test1.shなど、拡張子が.shのファイルを右クリックします
3。開く...-> sh.exeを選択
この後、Windows 10はすべての.shファイルをsh.exeで実行することを忘れません。
注:この方法を使用すると、実行するためにスクリプトファイル名にbashを追加する必要はありません。