2010-03-15 07:34:42 +0000 2010-03-15 07:34:42 +0000
68
68

Windowsで.shファイルを実行する方法を教えてください。

コマンドラインで./name.shというコマンドでファイル(name.sh)を実行しようとすると、次のようなエラーが出ます:

“. "は内部または外部のコマンド、操作可能なファイル、またはバッチファイルとして認識されません。

回答 (15)

76
76
76
2010-03-15 07:58:46 +0000

WindowsのCMD.EXEを使っていますね(エラーメッセージから)。コマンドの実行には別の構文を使っています。Cygwinなどがインストールされていると仮定して、sh name.shを使用する必要があります。

明確にするために、Windowsには.shファイルをサポートする組み込みのユーティリティがありません。これを実行するには、 Cygwin のようなサードパーティ製のツールをインストールする必要があります。

13
13
13
2010-03-15 13:48:44 +0000

Windows のコマンドプロンプトで Linux のコマンドを実行しようとしています。Windows ではバックスラッシュはパスセパレータであり、前方のスラッシュは一般的に引数を示します。

したがって、Windows はあなたが “.” という名前のコマンドを実行しようとしていて、引数 “/name.sh” を解析しようとしていると考えます。正しい規約は “.name.sh” です。さらに、Windows は自動的にカレントディレクトリを検索しますので、"name.sh “と入力すればいいのです。

次の問題は、Windows が sh スクリプトが何であるかを知らないということです。もしあなたが本当にshスクリプトを実行したい、または実行する必要があるならば、Cygwinをインストールすることでこれを解決することができます。これでWindowsが理解できるバッチファイルができました。バッチファイルについては こちら を参照してください。

11
11
11
2010-11-18 15:46:30 +0000

また、暗黒面に回ってLinuxをインストールすることもできます。プロンプトから:

sh runide.sh

または

sudo sh runide.sh

あなたのプログラムは実行され、よりよいシステムがまたあります。

9
9
9
2017-04-09 18:58:10 +0000

私の考えでは # Best solution in my opinion:

  • ダウンロードしてインストール .git for Windows

  • デスクトップを右クリックして *“git bash here” *

  • unix のようにスクリプトを実行する

  • 完了!

_注意。多くのコマンドはWindows上では動作しません!

定期的にスクリプトが必要な場合は、ショートカットを作成すると良いでしょう(デスクトップなどに):

  • Create a Shortcut to mintty.exe on your desktop

  • ショートカットのプロパティを編集し、ターゲットを変更します(パスはそのままで):

  • C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'

5
5
5
2011-08-16 22:52:50 +0000

ガソリンの代わりにオレンジジュースで車を走らせようとしています。Windowsは、オペレーティング・システムのこれらの2つのファミリーが共通の祖先であるDEC PDP-xマシンを共有しているように、Unix/Linux/zOS Unix Subsystem/*ixシェルスクリプトと.batまたは.cmdファイルに格納されている類似のコマンドを共有しています。 exe “プログラムや "csh.exe "や "bash.exe "プログラム(tsh.exeは誰か?)を提供する環境をインストールする必要があります

あるいは、もしあなたがUnixのスクリプトコマンドをよく知っていて、Windowsの.cmdや.batファイルのコマンドをよく知っていれば、.shファイルを.batや.cmdファイルに変換することができます。それでも、Windowsでは同等のものがないUnixスタイルのプログラム–grep, sed, vi, emacsなど–に遭遇することがよくあります。そのため、CygWin (ミニマリストではありません)をインストールして、シェルとUnixツールを手に入れることが求められています。これらの特別な日のために、フラッシュドライブに入れておきましょう。

3
3
3
2012-05-28 23:19:47 +0000

誰かがMS-DOSがコマンドには/を、パスには誰かがMS-DOSがコマンドには/`を、パスにはを使うと言っていました。これはわずかに誤解を招く。私の例を見てください:

C:\myfoo\foo\>cd../.. 
C:\myfoo\foo\>cd..\..

効果に違いはありません。はい、それはすべての操作のために真ではありません - 実際の答えは、単にNoであるか、またはCygwinまたはSSHDなしではできません。

2
2
2
2015-07-20 16:24:31 +0000

Windows用のGithubを使用してください。これにはすべてのUnix環境の実行ファイルが含まれています。

1
1
1
2014-05-13 22:05:11 +0000

私は、UnixUtil という別の簡単な解決策を見つけました。

ダウンロードして、C:ドライブに解凍します。環境変数pathC:\UnixUtils\usr\local\wbinを含むように設定します。パスを C:\UnixUtils\bin に設定しないでください。

1
1
1
2018-05-01 16:06:51 +0000

これは古いスレッドですが、Windows 10を実行している人のためのものです。コントロールパネルの'Turn Windows Features on or Off’

機能'Windows Subsystem for Linux'を選択してください。インストールした後、'Bash'があり、bash内でネイティブのLinuxサーバーを設定することもできます。もちろん、bash 内の sh コマンドも動作します。

1
1
1
2016-12-27 10:39:14 +0000

完全性のために、私はWindows 10のための新しい “Windows Subsystem for Linux "機能に言及したいと思います。詳細は http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/

注意点としては、"Developer Mode” スイッチを有効にして、"Windows Subsystem for Linux (Beta)“ オプションを有効にする必要があります。

0
0
0
2012-08-31 15:16:38 +0000

あなたの家(または仕事場)にLinuxボックスがあり、同じネットワークに接続されており、このネットワークが安全である場合、これはトリックを行うかもしれません:

  1. Windows でフォルダ共有を作成します(かなり簡単ですが、ネットワークが侵入者から安全であることを確認してください)。2. Linuxでmount //WinMachine/Share LinuxFolderを使ってマウントする(私の記憶では、Sambaが必要)。PuTTY ](http://www.chiark.greenend.org.uk/~sgtatham/putty/) のようなものを使って、その Linux ボックスにリモートでログインします。マウントされたフォルダでコマンドを実行します。
0
0
0
2010-03-15 13:46:42 +0000

OK, これではたくさんの問題があります - #!/bin/sh を削除して、拡張子を bat に変更すれば、もう少し修正すれば動くようになるかもしれません。cygwin や unxutils を使いこなせば両方で動作するものが作れるかもしれませんが、環境が常に同じであることを絶対的に確信していない限り、頭痛の種になるほどの価値はありません。

0
0
0
2016-08-25 07:34:59 +0000

ここでの既存の答えは当時は正しかったのですが、Windows 10 does は現在、オプションで 完全な bash シェルを実行している Ubuntu の修正版 を含んでいます。

一度実行可能にすると、スクリプトはbash内から通常の方法で実行することができます, 例えば:

chmod +x myscript.sh
./myscript.sh

Windowsから直接スクリプトを実行したい場合は、同じディレクトリにショートカットを作成し、'ターゲット'を次のようなものに設定することができます:

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

スクリプトのパスがショートカットの場所に相対している場合は(上記の例のように)、'スタートイン'フィールドも空白であることを確認してください。

0
0
0
2015-11-23 11:57:56 +0000

ウィンドウズからシェルスクリプトを実行するには、まずコマンド : dos2unix を使ってください。dos2unixのコマンドを使用して、通常のコマンドを使用することができます。

0
0
0
2010-03-15 07:55:19 +0000

問題は実際には name.sh ファイルの中にある可能性があります – あなたは . コマンドを使おうとしていますが、それは有効なコマンドではないシェルのようなものを実行しようとしています (例: csh だと思います)。

では: (実際に name.sh を実行しようとしているのであれば) #!/bin/sh は正しい sh で始まるのでしょうか?