Git Bash(Windowsの場合)を使用すると、実行可能ファイルはPATH変数にあるフォルダーにありますが、フルパスを指定せずに実行することはできません。bashがそれを認識していないようです。なんで?修正できますか?
21 に答える
とった。Windowsユーザーとして、私は拡張子なしで実行可能ファイル名を入力することに慣れています。私の場合、。というファイルを実行したいと思いましたcup.bat
。Windowsシェルでは、入力cup
するだけで十分です。Bashはこのようには機能しません。フルネームが必要です。入力cup.bat
すると問題が解決しました。(bashがその内容を理解できなかったため、ファイルを実行できませんでした)
posh-gitに切り替えるもう1つの理由。
私を正しい方向に向けてくれてありがとう@Tom。
たぶんbashはあなたのWindowsパスを認識していません。bashと入力してenv|grep PATH
、表示されるパスを確認します。
@Danielのコメントに続いて、@ Tomの回答のおかげで、Git bashが実際にPATHを使用していることがわかりましたが、最近インストールした最新のパスは使用していません。この問題を回避するために、ホーム(windows)ディレクトリに次の名前のファイルを追加しました。
.bashrc
および内容は次のとおりです。
PATH=$PATH:/c/Go/bin
Goをインストールしていて、このパスに実行可能ファイルが含まれていたため、go.exe
Gitbashは次のコマンドを認識できました。
go
私の場合は、システムを再起動するだけで十分だったかもしれませんが、このソリューションがどのような場合でも機能することを嬉しく思います。
Gitをインストールしているときに、以下に示すオプションを選択できます。これは、パスを自動的に設定するのに役立ちます。
それは私のためにうまくいきました:)
C:\ Users \ USERNAMEに、config.bashrcという名前のファイルを作成します。このファイルには次のものが含まれます。
PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space
次に、コマンドラインでファイルを正しい場所に移動します。
mv config.bashrc .bashrc
PATHに新しい値を追加した後、コンピューターを再起動します。
古い質問ですが、それは他の誰かを助けることができます。
PATHユーザー全体を変更しました。その後、ログオフして再度ログインしました。
それだ!git bash
新しいPATH値を正しくロードしました。
git-bash
'が存在するPATH
が最新ではなく、再起動したくないがsを再生成するPATH
場合は、次のことを試すことができます。
cmd.exe
すべての、、powershell.exe
を閉じてgit-bash.exe
、スタートメニューまたはデスクトップコンテキストから1つのcmd.exeウィンドウを再度開きます。- システム全体を変更した場合は
PATH
、1つの特権cmdウィンドウを開く必要がある場合もあります。 - WindowsエクスプローラのコンテキストメニューからGitbashを開き、環境
PATH
が更新されているかどうかを確認します。IntelliJ IDEAの端末は、おそらくログインシェルまたはその他の種類の魔法であるためPATH
、IDEAを再起動するまで変更されない場合があることに注意してください。 - それでも問題が解決しない場合は、すべての
Windows Explorer
プロセスも閉じて、上記の手順を再試行する必要があります。
注:これはすべてのWindowsバージョンで機能するわけではなくcmd.exe
、[スタート]メニューまたは[デスクトップ]コンテキストメニュー以外の場所で開くと機能しない場合があります。4台のコンピューターでテストし、そのうち3台が機能します。なぜこれが機能するのかわかりませんでしたが、PATH
ログインおよびログアウトすると環境変数が自動的に生成されるため、変数の連結でその変数を台無しにしないでください。
システムを再起動すると、Windowsの環境変数に設定されたPATHがgitによって取得され、他の自動方法がないことを確認できます。
ここでの根本的な原因は、Git Bashが変数%USERPROFILE%を常に正しく解析できないことであると思われます。C:\ Users \\を基準にする代わりに、値C:\ Windows \ System 32 \ systemprofile \を取得します。これを完全修飾アドレスに変更すると、機能します。後で元に戻しても、GitBashは引き続き機能します。何らかの理由で正しいPATHを持っています。
mingwを使用してWin10でxgboostlibをコンパイルしようとすると、この問題が発生します。ついに私は解決策を見つけました。
ホームディレクトリ(通常はC:\ Users \ username)に.bashrcという名前のファイルを作成します。次に、パスを追加します。パスに空白が含まれている場合は引用符を使用し、C:/の代わりに/c/を使用することを忘れないでください。
例えば:
PATH = $ PATH: "/ c / Program Files / mingw-w64 / x86_64-7.2.0-posix-seh-rt_v5-rev1 / mingw64 / bin"
Windows 10では、gitをアンインストールして再度インストールするだけです。環境変数が自動的に設定されます。誤って環境変数を削除してしまい、IDE内でgitを使用できませんでした。gitを再インストールすると、この問題が修正されました。
私にとって最も便利なのは次のとおりです。1)C:ドライブのルートにディレクトリ「bin」を作成します。2)「C:/bin;」を追加します。「マイコンピュータ->プロパティ->環境変数」のPATHへ
$ PATH変数を編集/追加するときは、特殊文字をエスケープ(\)しないでください。たとえば、プログラムファイルのアプリケーションディレクトリは次のようになります。
PATH=$PATH:/c/Program Files (x86)/random/application
これを行わないでください:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/
お役に立てれば。
私は自分の側で愚かな間違いに遭遇しました。システム全体で、Windows10マシンのgolangワークスペースにユーザー変数パスを設定しました。冗長システムの可変パスウェイを削除してログオフして再度ログオンすると、bashで.exeファイルを呼び出し、goenvを呼び出すことができました。
OPは回答済みですが、これはbashがあなたの経路を見るのを妨げる可能性のある別の問題です。私はこの問題でbashを再度テストしましたが、bashがいずれかのパスをたどることをブロックするある種の競合が発生しているようです。
私の場合、herokucliとgitbashをインストールしているときに発生しました。これが、私が作業したことです。
この場所に着きました
C:\Users\<username here>\AppData\Local
私の場合はherokuフォルダのファイルを削除します。そこで、フォルダを削除してcmdを実行しました。動作しています
WindowsオペレーティングシステムのGitbashターミナルには、システムパス/ユーザーパスを読み取ってアプリを実行する機能がありますが、次の場合に失敗する可能性があります
- ターミナルを閉じずに環境変数にアプリを追加
- MSYS/MinGWがパスを変換しています
- アプリは、元の呼び出し方法の代わりに共通のエイリアス名を使用しようとしているコマンド
ユースケース-1:
再起動端末が機能し、以下のコマンドを使用してパスを確認する必要があります
env|grep PATH
ユースケース-2:
例を挙げて説明しましょうdocker
。このようなアプリでは、MSYSがオリジンパスを変換しているため、gitbashターミナルでは直接機能しません。このような問題の場合、コマンドを使用してパス変換を無視し、実際の実行コマンドを続行するように端末に指示する必要がある場合があります。 MSYS_NO_PATHCONV=1
たとえば、docker --help
次のようになります。
MSYS_NO_PATHCONV=1 MSYS_NO_PATHCONV=1 docker run -dp 3000:3000 -w /app -v "$(pwd):/app" node:12-alpine sh -c "yarn install && yarn run dev"
717d12b9fe5211f0189ccbed0ba056ca242647812627682d0149ede29af472a4
ユースケース-3: cli
の例を使用して説明します。理想的には、システム/ユーザーパスに追加されるaz
Windowsでのazcliインストールです。az.cmd
Windowsオペレーティングシステムでは、PowerShellまたはコマンドプロンプトのいずれかが認識 az.cmd
しますaz
が、git bashはそれを理解しません-したがって、混乱を避けるためにエイリアスを使用してalias az='az.cmd'
、実行するaz --help
と機能します
Windowsシステム環境を含む上記のすべての方法を試したことがある方のために。変数、.bashrc、.bashprofileなど。そして'echo$PATH'で正しいパスを見ることができます...私はあなたのための解決策があるかもしれません。
exec 2> / dev/nullを使用してエラーを抑制します
私のスクリプトは正常に実行されますが、「コマンドが見つかりません」または「ディレクトリが見つかりません」というエラーがスローされましたが、私が知る限り、パスはフラッシュされていました。したがって、これらのエラーを抑制した場合('set + e'も追加する必要がある場合があります)、正しく機能します。
Pathという名前のユーザー変数を作成し、値%Path%として追加します。これから、Git Bashにはユーザー変数のみが表示され、システム変数は表示されないことがわかりました。上記の手順を実行することにより、ユーザー変数でシステム変数を公開します。
Windows 7のパス環境変数では、システム変数パスの最後に追加するだけです。
\; C:\ Program Files \ Git \ bin
そしてそれは今動作します!