Git Bashが私のPATHを認識しない


107

Git Bash(Windows)を使用すると、PATH変数内のフォルダーにありますが、フルパスを指定しないと実行可能ファイルを実行できません。bashが認識しないようです。どうして?修正できますか?


1
PATH変数の内容を正確に示すことができますか?
チョロバ

うーん、それは私の質問とどのように関連していますか?通常のWindowsシェル(cmd)を使用して同じ実行可能ファイルを実行できるので、不正な形式であると疑われる場合は、不正ではないと確信しています。
ULU

@ulu:PATH変数はどの実行可能ファイルを見つけることができるかを決定するものであるため、これはあなたの質問に関連しています... PATH変数はBashシェル内からどのように見えますか?
jalf

特に、/ e / Programs / Tools / binが最後の近くのどこかに含まれています。これが私が興味のあるパスです。たぶん問題は、batファイルを実行しようとしていることですか?
ulu

回答:


64

とった。私はWindowsユーザーとして、拡張子なしの実行可能ファイル名を入力するのに慣れています。私の場合、というファイルを実行したいと思いましたcup.bat。Windowsシェルでは、タイピングcupで十分です。Bashはこの方法では機能せず、フルネームが必要です。タイピングcup.batは問題を解決しました。(ただし、bashがその内容を理解できなかったため、ファイルを実行できませんでした)

posh-gitに切り替えるもう1つの理由

@Tomに正しい方向を教えてくれてありがとう。


5
また、名前を短縮するためにエイリアスを使用することができます:alias cup=cup.bat
ビタリDettling

WindowsはPATHとPATH_EXTENSIONSの両方を使用して実行可能ファイルを解決しますが、Linuxの世界ではPATHのみを使用します
Ferrybig

シェルスクリプトは絶対に何も呼び出さないでください.bat。拡張機能はWindowsバッチスクリプトを意味します-特にWindowsマシンでは。
3

posh-gitは何を解決しますか?拡張子を入力する必要はもうありませんか?
Qwerty

@Qwerty poshはPowershellコンソールです。これに切り替えると、使い慣れたすべてのコマンドとショートカットを備えた、よりWindowsに適したコンソールになります。そして、はい。Windowsコンソールと同様に、「。exe」や「.bat」を入力する必要はありません
ulu

53

多分bashはあなたのWindowsパスを見ません。タイプenv|grep PATH何のパスを確認するためにbashで、それは見ています。


1
それは言う:PATH = / c / Users / ulu / bin:。:/ usr / local / bin:/ mingw / bin:/ bin:/ e / Programs / Ruby / bin:/ c / Program Files / Common Files / Microsoft Shared / Windows Live:/ c / Program Files(x86)/ C ommon Files / Microsoft Shared / Windows Live:/ c / Windows / system32:/ c / Windows:/ c / Wind ows / System32 / Wbem:/ c / Windows / System32 / WindowsPowerShell / v1.0 /:/ e / Program Files(x86)/ Microsoft SQL Server / 90 / Tools / binn /
ulu

2
"which your_batch_file.bat"(引用符なし)を実行してみてください。バッチファイルが実際にパスにある場合は、バッチファイルの場所を返します。
トム

15
git-bashに表示するパスを追加するにはどうすればよいですか?
エンジェルS.モレノ

14
@ AngelS.Morenoを更新するか、ホームディレクトリの下に「.bashrc」ファイルを作成し(例:git bash / cygwinの「vim〜/ .bashrc」)、「PATH = $ PATH:<your_path_1>:<your_path_2>:」を追加します。 ..:<your_path_n> "をこのファイルに追加します。したがって、「/ usr / bin / mypath」をPATH変数に含めたい場合、この行は次のようになります。PATH = $ PATH:/ usr / bin / mypath
Daniel

35

@Danielのコメントに続き、@ Tomの回答のおかげで、Git bashが実際にPATHを使用しているが、最近インストールした最新のパスは使用していないことがわかりました。この問題を回避するために、ホーム(windows)ディレクトリに次の名前のファイルを追加しました。

.bashrc

そして内容は次の通り:

PATH=$PATH:/c/Go/bin

Goをインストールしていて、このパスに実行可能ファイルが含まれているため、go.exe Git bashはコマンドを認識できました。

go

おそらく私の場合はシステムを再起動するだけで十分でしょうが、このソリューションがどのような場合でも機能することを嬉しく思います。


そして、複数のパスを追加するには?
Nikiforos

PATH=$PATH:/c/Go/bin:/c/other/path
ミカエル・メイヤー

ホームウィンドウディレクトリとはどういう意味ですか?ご指定ください。
Mian Asbat Ahmad

c:/Users/[myusername]/私のホームディレクトリだこと
ミカエル・メイヤー

9

Gitのインストール中に、以下に示すオプションを選択できます。これにより、パスを自動的に設定できます。

Gitインストールウィザード

それは私のためにうまくいきました:)


1
@eranotzap代替オプションでGitを再インストールしますか?:)
ブレット・ライアン

1
@eranotzap環境変数を設定するか、Git
Muthamizhchelvanを

最終的にgit bashがインストールされない場合、これはどのようにgit bashがパスを使用するのに役立ちますか?
ジュール、

@Julesいいえ、Git Bashをインストールしている間、スクリーンショットに示すようにオプションの入力を求められます。そこで必要に応じて1つの質問を選択できます。gitbashは選択オプションでインストールされます。
Muthamizhchelvan。V

9

C:\ Users \ USERNAMEにconfig.bashrcというファイルを作成します。

PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space

次に、コマンドラインのファイルを正しい場所に移動します。

mv config.bashrc .bashrc

4

PATHに新しい値を追加した後、コンピュータを再起動します。


1
コンピュータを再起動する必要はありません。ターミナルセッションが再起動します。
christianbundy

2
@christianbundyわかりませんが、ターミナルの再起動は役に立たなかったようですが、コンピュータの再起動は役に立ったので、この回答を書きました。再起動ターミナルは、私が最初に試すことです。
Pavel

そのような単純な答え、そして完全に効果的です。
bobanahalf

4

古い質問ですが、他の人を助けることができます。

PATHユーザー全体を変更しました。その後、ログオフして再度ログインしました。

それだ!git bash新しいPATH値を正しくロードしました。


git baskを閉じたりログオフしたりせずに可能ですか?つまり、パス変数を設定したいのですが、それを現在のgit bashで使用できます
KCS 2018

たぶんあなたはできるでしょう:export PATH=$NEW_PATH:$PATH。そして、通常のことを行う
fernandosavio 2018

2

システムを再起動すると、Windowsの環境変数に設定されているPATHがgitによって取得され、他に自動的な方法がないことが確認できます。


1

ここでの根本的な原因は、Git Bashが常に変数%USERPROFILE%を正しく解析できないことです。C:\ Users \\に対して相対的にする代わりに、値C:\ Windows \ System 32 \ systemprofile \を取得します。これを完全修飾アドレスに変更すると機能します。後で設定し直しても、Git Bashは引き続き機能します。何らかの理由で正しいPATHがあります。


1

Windows 10では、gitをアンインストールして、もう一度インストールします。環境変数が自動的に設定されます。誤って環境変数を削除してしまい、IDE内でgitを使用できませんでした。gitを再インストールすると、この問題が修正されました。


1

場合にはあなたのgit-bashPATHプレゼントではなく、最新の、あなたは、再起動をしたいが、あなたの再生しないPATHのを、あなたはすべて閉じてみてくださいすることができcmd.exepowershell.exeと、git-bash.exeとスタートメニューやデスクトップから1つのcmd.exeのウィンドウを再度開くと、かどうかを確認PATHENVが更新されます。システム全体を変更した場合は、PATH1つの特権cmdウィンドウを開く必要もあります。

注:これはすべてのWindowsバージョンで機能するわけではなくcmd.exe、スタートメニューまたはデスクトップ以外で開くと機能しない場合があり、3台のコンピューターでテストし、そのうち2台は機能します。なぜこれが機能するのかはわかりませんでしたが、PATHログインしてログアウトすると環境変数が自動的に生成されるため、変数を連結してその変数を台無しにしないでください。


0

私にとって最も便利なのは、次のとおりです。1)C:ドライブのルートにディレクトリ「bin」を作成します。2)「C:/ bin;」を追加します。「マイコンピュータ->プロパティ->環境変数」のPATHに


0

Win10でmingwを使用してxgboost libをコンパイルしようとすると、この問題が発生します。最後に私は解決策を見つけました。

.bashrcという名前のファイルをホームディレクトリ(通常はC:\ Users \ username)に作成します。次に、パスを追加します。パスに空白が含まれている場合は引用符を使用し、C:/の代わりに/ c /を使用することを忘れないでください。

例えば:

PATH = $ PATH: "/ c / Program Files / mingw-w64 / x86_64-7.2.0-posix-seh-rt_v5-rev1 / mingw64 / bin"


0

私は私の愚かな間違いに出くわしました。私はシステム全体で、Windows 10マシンのgolangワークスペースにユーザー変数パスを設定しました。冗長なシステム変数パスウェイを削除し、ログオフして再度ログオンすると、bashで.exeファイルを呼び出し、正常にgo envを呼び出すことができました。

OPは回答済みですが、これはbashがあなたの経路を見るのを妨げる可能性がある別の問題です。この問題でbashを再度テストしたところ、bashがいずれかのパスをたどらないようにする何らかの競合が発生しているようです。


0

古い質問ですが、環境変数には2つのタイプがあります。ユーザーが所有しているものと、システム全体で使用しているもの。(ユーザー特権または管理者特権で)git bashをどのように開くかに応じて、使用される環境変数PATHは、ユーザー変数またはシステム変数から取得できます。下記参照: ここに画像の説明を入力してください

前の回答で述べたように、コマンドenv|grep PATHを使用してどちらを使用しているかを確認し、それに応じて変数を更新します。ところで、システムを再起動する必要はありません。git bashを閉じて再度開くだけです


0

私の場合、heroku cliとgit bashをインストールしているときに発生しました。

この場所に着いた

C:\Users\<username here>\AppData\Local

私の場合はherokuフォルダー内のファイルを削除します。だから私はフォルダを削除してcmdを実行しました。それは働いています


-1

$ PATH変数を編集/追加するときは、特殊文字をエスケープしないでください(\)。たとえば、プログラムファイルのアプリケーションディレクトリは次のようになります。 PATH=$PATH:/c/Program Files (x86)/random/application

これを行わないでください:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/

お役に立てれば。


PATH=$PATH:/c/Program Files (x86)/random/application...これは、PATHを設定するための正しいbash構文ではありません。これにより、一時的にディレクトリ/c/Programがパスに追加され、プログラムFilesを引数付きで実行してみます(x86)/random/application。「これを行わない」の例の唯一の誤りは、単一のバックスラッシュが正しい場合に、ブラケットのバックスラッシュが2つになったことです。
ジュール

-2

Windowsシステム環境を含む上記のすべての方法を試したことがある人のために。変数、.bashrc、.bashprofileなど。そして 'echo $ PATH'で正しいパスを確認できます...解決策があるかもしれません。

exec 2> / dev / nullを使用してエラーを抑制します

スクリプトは問題なく実行されましたが、「コマンドが見つかりません」または「ディレクトリが見つかりません」というエラーがスローされました。そのため、これらのエラーを抑制した場合( 'set + e'も追加する必要がある場合があります)、正常に機能します。


1
これはエラーを無視しているだけで、問題の根本的な原因を解決していないようです。
nmio

-3

Pathという名前のユーザー変数を作成し、値%Path%として追加します。これは、Git Bashがシステム変数ではなくユーザー変数のみを認識していることに気付きました。上記の手順を実行すると、システム変数がユーザー変数に表示されます。


-3

Windows 7パス環境変数では、システム変数パスの最後に追加するだけです

\; C:\ Program Files \ Git \ bin

そしてそれは今働きます!

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