Git Bash(Windows)を使用すると、PATH変数内のフォルダーにありますが、フルパスを指定しないと実行可能ファイルを実行できません。bashが認識しないようです。どうして?修正できますか?
Git Bash(Windows)を使用すると、PATH変数内のフォルダーにありますが、フルパスを指定しないと実行可能ファイルを実行できません。bashが認識しないようです。どうして?修正できますか?
回答:
とった。私はWindowsユーザーとして、拡張子なしの実行可能ファイル名を入力するのに慣れています。私の場合、というファイルを実行したいと思いましたcup.bat
。Windowsシェルでは、タイピングcup
で十分です。Bashはこの方法では機能せず、フルネームが必要です。タイピングcup.bat
は問題を解決しました。(ただし、bashがその内容を理解できなかったため、ファイルを実行できませんでした)
posh-gitに切り替えるもう1つの理由
@Tomに正しい方向を教えてくれてありがとう。
alias cup=cup.bat
.bat
。拡張機能はWindowsバッチスクリプトを意味します-特にWindowsマシンでは。
多分bashはあなたのWindowsパスを見ません。タイプenv|grep PATH
何のパスを確認するためにbashで、それは見ています。
@Danielのコメントに続き、@ Tomの回答のおかげで、Git bashが実際にPATHを使用しているが、最近インストールした最新のパスは使用していないことがわかりました。この問題を回避するために、ホーム(windows)ディレクトリに次の名前のファイルを追加しました。
.bashrc
そして内容は次の通り:
PATH=$PATH:/c/Go/bin
Goをインストールしていて、このパスに実行可能ファイルが含まれているため、go.exe
Git bashはコマンドを認識できました。
go
おそらく私の場合はシステムを再起動するだけで十分でしょうが、このソリューションがどのような場合でも機能することを嬉しく思います。
PATH=$PATH:/c/Go/bin:/c/other/path
c:/Users/[myusername]/
私のホームディレクトリだこと
Gitのインストール中に、以下に示すオプションを選択できます。これにより、パスを自動的に設定できます。
それは私のためにうまくいきました:)
C:\ Users \ USERNAMEにconfig.bashrcというファイルを作成します。
PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space
次に、コマンドラインのファイルを正しい場所に移動します。
mv config.bashrc .bashrc
PATHに新しい値を追加した後、コンピュータを再起動します。
古い質問ですが、他の人を助けることができます。
PATHユーザー全体を変更しました。その後、ログオフして再度ログインしました。
それだ!git bash
新しいPATH値を正しくロードしました。
export PATH=$NEW_PATH:$PATH
。そして、通常のことを行う
システムを再起動すると、Windowsの環境変数に設定されているPATHがgitによって取得され、他に自動的な方法がないことが確認できます。
場合にはあなたのgit-bash
のPATH
プレゼントではなく、最新の、あなたは、再起動をしたいが、あなたの再生しないPATH
のを、あなたはすべて閉じてみてくださいすることができcmd.exe
、powershell.exe
と、git-bash.exe
とスタートメニューやデスクトップから1つのcmd.exeのウィンドウを再度開くと、かどうかを確認PATH
ENVが更新されます。システム全体を変更した場合は、PATH
1つの特権cmdウィンドウを開く必要もあります。
注:これはすべてのWindowsバージョンで機能するわけではなくcmd.exe
、スタートメニューまたはデスクトップ以外で開くと機能しない場合があり、3台のコンピューターでテストし、そのうち2台は機能します。なぜこれが機能するのかはわかりませんでしたが、PATH
ログインしてログアウトすると環境変数が自動的に生成されるため、変数を連結してその変数を台無しにしないでください。
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"
私は私の愚かな間違いに出くわしました。私はシステム全体で、Windows 10マシンのgolangワークスペースにユーザー変数パスを設定しました。冗長なシステム変数パスウェイを削除し、ログオフして再度ログオンすると、bashで.exeファイルを呼び出し、正常にgo envを呼び出すことができました。
OPは回答済みですが、これはbashがあなたの経路を見るのを妨げる可能性がある別の問題です。この問題でbashを再度テストしたところ、bashがいずれかのパスをたどらないようにする何らかの競合が発生しているようです。
$ 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つになったことです。
Windowsシステム環境を含む上記のすべての方法を試したことがある人のために。変数、.bashrc、.bashprofileなど。そして 'echo $ PATH'で正しいパスを確認できます...解決策があるかもしれません。
exec 2> / dev / nullを使用してエラーを抑制します
スクリプトは問題なく実行されましたが、「コマンドが見つかりません」または「ディレクトリが見つかりません」というエラーがスローされました。そのため、これらのエラーを抑制した場合( 'set + e'も追加する必要がある場合があります)、正常に機能します。