bashのLinux(Ubuntu 11.04)では、スクリプトの実行中に通常の変数と異なるだけの環境変数を一時的に設定できますか?例えば、シェルスクリプトでHOMEを現在の作業ディレクトリのフォルダに一時的に設定してから、ポータブルに保存するアプリケーションを作成してから、アプリケーションを起動します。スクリプトの実行中にのみ環境変数を設定する方法はありますか?
答えて
はちょうどあなたが変更が発生するスクリプトのポイントで
export HOME=/blah/whatever
を置きます。各プロセスには独自の環境変数セットがあるため、この定義はスクリプトが終了すると自動的に中止されます(変更された環境を持つbashのインスタンスとともに)。
の期間_beyond_最後に設定を望んでいた場合、それは難しいだろう。 'export'は変数をサブシェルに渡しますが、親シェルを制御しません。 "#!/ bin/sh"などで始まるスクリプトを作成している場合は、スクリプトが終了するとANY変数が消えます。 – brightlancer
@brightlancer、それは本当ですが、私が書いたものと矛盾するようには見えません。 (スクリプトがバックグラウンドプロセスを開始する可能性を除いては、OPの洗練されたレベルを超えていると思うので混乱するだけです)。 –
エクスポートは不要です。また、彼のスクリプトがインタプリタ(#!/ bin/shなど)を起動する場合にのみ、あなたの答えが働きます。彼の "脚本"がなければ、あなたがちょうど彼に言ったことは、彼の脚本の終わりを超えて続くでしょう。そういうわけで、私はあなたの答えが間違っていると言っています。正しいかもしれませんが、そうではないかもしれませんが、誰かが "輸出"が彼が探していた必要な要素だと考えるようになるかもしれないので、 – brightlancer
env VAR=value myScript args ...
または 'VAR = value myScript args ... ' – Rockallite
1.' PATH = $ PATH:どうすればいいですか?XYZ echo $ PATH | grep XYZ'には出力がありませんか? 2. 'env'を使用する方法と使用しない方法の違いは何ですか? – qubodup
です。エコーコマンドを実行する前に**シェルがPATH変数**を展開するためです。その展開を遅らせる必要があります。 1つの方法: 'PATH = $ PATH:XYZ sh -c 'echo $ PATH' | grep XYZ' - ここでは一重引用符が鍵です –
VAR1=value1 VAR2=value2 myScript args ...
私は 'vblank_mode = 0 glxgears'を実行するためにこれを何度もやってきました。それは動作しますが、実行後に 'vblank_mode = 0:command not found'と表示されますが、' env'を前に付けてもこれは発生しません。 [testing ...]明らかにzshはそれを好きではない(まだそれを正しく使っている)が、bashはそれで問題ない。私は今から 'env'メソッドを使うつもりです。 –
- 1. コマンドラインスクリプトの実行中にPHP環境変数を設定する
- 2. Upstartスクリプトのプレスタートで環境変数を設定する方法は?
- 3. Xcode構築フェーズ実行スクリプト内でグローバル環境変数を設定する
- 4. 実行中のプロセスの環境変数を変更する
- 5. antスクリプトの環境変数を設定する
- 6. Pythonスクリプトの環境変数を設定する
- 7. の設定環境変数
- 8. 環境変数の設定
- 9. メイクファイルレシピで環境変数を設定する方法は?ここ
- 10. herokuでプロダクション環境変数を設定する方法は?
- 11. Visual Studio 2012で環境変数を設定する方法は?
- 12. Netbeansで環境変数を設定する方法は?
- 13. TFS 2010のinvokeprocessで環境変数を設定する方法
- 14. ローカルbash関数変数のスクリプトの環境変数を設定する
- 15. 特定のディレクトリのファイルが実行されたときに環境変数を自動的に設定する方法はありますか?
- 16. ビジュアルスタジオビルドヘルパーに環境変数を永続化する方法はありますか?
- 17. なぜWORKON_HOME環境変数を設定する必要がありますか?
- 18. 環境変数を設定する
- 19. - (ダッシュ)オプションを持つ環境変数を設定する方法
- 20. mavenを実行する前に環境変数を設定する(jenkinsビルドで)
- 21. テスト環境でjunit/TestNGテストケースを実行する方法はありますか?
- 22. Expectスクリプトで環境変数にアクセスする方法は?
- 23. スーパーバイザサービスで環境変数を設定する方法
- 24. Mac OS Xで環境変数を設定する方法
- 25. Netbeans 6.5:実行/デバッグ/テスト中に環境変数を変更しますか?
- 26. スペースがある環境変数をLinuxに設定する
- 27. ファイルの内容から環境変数を設定する方法は?
- 28. 永遠に実行されるメトリクスを取得するための環境変数の設定方法
- 29. msbuild、環境変数の設定方法は?
- 30. Capistrano:グローバル環境変数の設定方法は?
あなたは誤解だスクリプト – Nemo