3

私はかなり異常な問題を抱えています。私の .bashrc ファイルでは、スペースを含むパス名に変数を設定しました。これが問題を引き起こすと感じましたが、同様の方法でエイリアスを設定して遊んで、次のように動作するようにしました:

alias npp="\"/cygdrive/c/Program Files (x86)/Notepad++/notepad++.exe\""

さて、環境変数に同じトリックを使用できると思いました-

export PRO="\"/cygdrive/c/Program Files (x86)\""

これはうまくいきました。すこし。

[myName]  
$ echo $PRO  
"/cygdrive/c/Program Files (x86)"

[myName]  
$ cd $PRO  
bash: cd: "/cygdrive/c/Program: No such file or directory

二重引用符を削除する場合と削除しない場合のスペースの前にエスケープを配置しようとしました。エスケープの有無にかかわらず単一引用符を試しました。グレイブ アクセントを引用符として使用してみました。私はただの脱出を試みた、私は試みた

export PRO=/cygdrive/c/Program\\\ Files\\\ \\\(x86\\\)

これはどれも機能していません。持っている唯一のものは -

export PRO="/cygdrive/c/Program Files (x86)"
$ cd "$PRO"

最終的に、変数を入力するたびに引用符を付けずに変数を機能させる方法を見つけようとしています。アイデアが完全に尽きたので、誰かが私を助けてくれることを期待してここに来ました。

4

6 に答える 6

2

$PRO空白を引用しないと、単語の分割により、パスが複数の単語に分割されます。

于 2012-11-24T20:45:49.430 に答える
1

あなたの場合、変数を引用せずに変数を使用する方法はありません。

于 2012-11-24T20:42:29.257 に答える
0

「Program Files」のスペースをエスケープせずに、変数のディレクトリパスを評価するシェルスクリプトで同様の問題に遭遇しました。管理者としてCygwinを実行し、シンボリックリンクを作成することで、これを回避しました。ここでの答えはどれもうまくいきませんでした。

ln -s "/cygdrive/c/Program Files" /cygdrive/c/ProgramFiles

于 2016-04-30T02:10:46.377 に答える
0

技術的には、私はあなたの質問に答えることができませんが、適切な回避策は、必要なフォルダーへのリンクを作成し、リンクの変数を作成してから、その変数に cd することです。これは面倒な 2 番目のステップであり、無意味なリンクですが、bash プロファイルに入れる価値がある場合は、余分な手間をかける価値があるかもしれません。

これが私がしたことです:

ln -sf '/cygdrive/c/Users/Mic/Desktop/PENDING - Pics/' '/cygdrive/c/Users/Mic/mypics'

次に、これを bash_profile に入れ、$pic に cd できるようになりました

pic=/cygdrive/c/Users/Eric/mypics/
于 2013-07-03T10:34:30.097 に答える
0

このようにプログラムファイルを二重引用符で囲むだけです

/cygdrive/c/"Program Files (x86)"

わたしにはできる

于 2016-01-20T10:10:17.023 に答える