2017-08-23 13 views
0

最近UNIXファイルシステムに巻き込まれ、端末で遊んでいました。私はしかし、私は「Google Chromeの」、クロームウィンドウを開くための実行可能ファイルを実行している、私の$ PATH変数を変更したことに気づいた、私はここで

-bash: Google Chrome: command not found

のエラーメッセージが表示されますコンテキストです: Googleは私の/アプリケーションにインストールされています/ GoogleのChrome.app/Contents/MacOS「Google Chromeの」と呼ばれる実行可能ファイルと(私は

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome

を入力するときに、新しいクロームウィンドウが

[12838:35843:0822/170630.283203:ERROR:browser_gpu_channel_host_factory.cc(103)] Failed to launch GPU process.

を言うエラーメッセージが表示されて飛び出すのでことを知っています

だから私はこれがプログラムを実行するための実行可能ファイルだと確信している)

次に、実行ファイルを探す場所を探す場所を探すために$ PATH変数を少し掘り下げた。コマンド "(またはexe doesntの問題)。したがって、私は〜に行ってきましたし、$ PATHを編集している場合は.bash_profileと呼ばれ、保存されたファイルを検索し、ファイルにこれを追加:

PATH="/Applications/Google\ Chrome.app/Contents/MacOS:${PATH}" export PATH

それから私のソース〜/ .bash_profileをしてますecho $ PATHと実際のディレクトリクロム含有の実行可能ファイルは、次のように$のPATHの一部として挿入されます。

> echo $PATH 

/Applications/Google\ Chrome.app/Contents/MacOS:/Library/Frameworks/Python.framework/Versions/3.6/bin: ... 

をその後、私はGoogleの\ Chromeを入力すると、システムは、「コマンドが見つかりません」で応答します。私はさらにどこに行ってGoogle \ ChromeとどのGoogle \ Chromeをやっても、私はGoogle Chromeが実行中のパスではないと私に強要するような応答は得られませんでした。

ここでの質問は、Chromeを簡単にアクセスできるように$ PATHを編集しようとしたときに何が間違っていたのですか?それは私が$ PATHが間違っていると理解しているからですか?それとも、私はいくつかの細部が欠けているからですか?私が知る限り、pythonとcassandraのような他のアプリケーションと同じ$ PATHの編集でChromeを動作させるべきですが、私はそうしませんでした。あなたの貴重な洞察を私に話してください。あなたの時間と労力は非常に高く評価されています:)

+0

あなたのbashrc –

+0

@SimonHobbsでエイリアスを作成すると、それには多くの欠点があります。エイリアスを使用すると、対話型シェルから起動できますが、他のプログラムでは実行できません。たとえば、 'find。-name '* .html' -exec 'Google Chrome' {} +')を実行します。たとえ関数であっても(bashを使用している場合)、環境へのエクスポートが可能で、子プロセスによって開始されたシェルによって尊重されるので、柔軟性が増します.PATH経由で実行可能であり、 。 –

答えて

0

あなたが間違っていたのは、バックスラッシュを変数にリテラルとして入れることでした。これはシェルが名前にバックスラッシュを持つディレクトリを見つけようとしています。 (バックスラッシュはechoの出力に存在するので、実際には無意味なシーケンスとして認識されて破棄されるのではなく、実際には最終変数に終わったことがわかります)。

引用符で囲まれたスペースは、すでにリテラルであることが分かっているので、追加のバックスラッシュはありません。

PATH="/Applications/Google Chrome.app/Contents/MacOS:$PATH" 

...で十分です。 (明示的にexportの必要はありません:既存の環境変数と同じ名前のシェル変数を更新すると、後者が自動的に変更されます)。 - ところで


はあなたが chrome http://example.com/を呼び出すことができるようにシェル関数を定義する場合、それは次のようになります。エイリアスとは異なり

chrome() { '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' "[email protected]"; } 

、機能をエクスポートすることができます(export -f chrome)作りますそれらはbashの他のインスタンスで利用できます。論理を実行することもできます(例えば、引数を検査し、渡されたものに基づいて異なる動作をするなど)。

+0

チャールズさんに感謝します!実際にはこれがクリアされ、現在は「Google Chrome」が動作し、新しいウィンドウが空白のタブで表示されます。最後に表示されたすべてのタブで古いウィンドウを開きたいと言っているように、これにもっとトリックがあるのだろうか、どうすればいいだろうか?あなたの答えには、Webアドレスを取り込むbash関数関数が含まれているので、そのWebサイトの特定のタブを開くことができます。これは私が期待している種類のトリックです;) –

関連する問題