5

WinXPに直接インストールするのではなく、cygwinにインストールしたPythonを使いたかったので、~/.bashrcを編集してsourceしました。何も変わっていません。私は他のことを試しましたが、 $PATH を変更したことはありません。それで再起動しました。あはは; 今 $PATH が私が望んでいたものに変更されました。

しかし、誰がなぜこれが起こったのか説明できますか? cygwin (および bash) を介して行われた環境 (およびその変数) への変更は、再起動後にのみ有効になるのはいつですか?

(これは鉄道を運営する方法ですか?) (この質問はポイントを獲得する可能性は低いですが、私は興味があります。また、この点で役に立たないドキュメントを探すのにもうんざりしています.)

4

4 に答える 4

3

試す:

PATH="${PATH}:${PYTHON}"; export PATH

または:

export PATH="${PATH}:${PYTHON}"

引用符は、ディレクトリ名に含まれていないスペースと改行を保持します。「しない」を繰り返します。

現在の環境と後続のプロセスのパスを変更する場合は、上記のいずれかのコマンドに似たものを使用します。それらは同等です。

次回 Bash を起動するときのパスを変更する場合~/.bashrcは、上記のいずれかを編集して追加するか (たとえば)、PATHそこにある既存の設定コマンドを編集します。

現在の環境とその後の環境の両方に影響を与えたい (つまり、即時および「永続的な」影響を与えたい) 場合~/.bashrcは、次のいずれかを編集して実行します: 上記の最初の 2 つの形式のいずれかを入力するか、ファイルをソースし~/.bashrcます。場合によっては、ソーシングを実行したくない場合があります。たとえば、現在使用している一時的なものを元に戻したり、他の変数~/.bashrcを設定 (リセット) するのとは別の方法で設定したりする場合などです。

深刻な再配置を行うか、おそらくシステムユーティリティのローカルの代替品を追加しない限り、ハッシュについて心配する必要はないと思います。

于 2009-07-14T01:15:56.580 に答える
2

変更を永続的にしたい場合は、適切なファイル (この場合は .bashrc) を変更し、次のいずれかのアクションを実行する必要があります。

  • Cygwin ウィンドウを再起動します。
  • source .bashrc (うまくいかない場合でも、これはうまくいくはずです)
  • . .bashrc (ドット <スペース> <ファイル名>)

ただし、BASH シェルを使用する場合はデフォルトで .bashrc が使用されるため、別のシェル (csh、ksh、zsh など) を使用している場合、.bashrc を変更しても変更は反映されません。

于 2009-07-14T01:55:17.077 に答える
1

少なくとも試して除外するいくつかのこと:

  1. シェルから次のように同じ動作が得られますか? (期待どおりに動作する私のcygwinから貼り付けました。)

    $ エコー $PATH
    /usr/local/bin:/usr/bin:/bin
    
    $ export PATH=$PATH:/cygdrive/c/python/bin
    
    $ エコー $PATH
    /usr/local/bin:/usr/bin:/bin:/cygdrive/c/python/bin
    
  2. あなたのbashrcは上記と同様の方法でPATHを設定していますか? (つまり、2 番目のコマンド)。

  3. あなたのbashrcには「ソース」または「.」が含まれていますか?どこでもコマンド?(おそらく、PATH 変数を上書きする別のファイルをソースしている可能性があります。)

于 2009-07-14T02:16:47.983 に答える
0

パス変数を変更した後、bash のハッシュを再初期化する必要がある場合があります。

hash -r
于 2009-07-14T00:57:32.260 に答える