タグ付けされた質問 「environment-variables」

環境変数に関する質問については、実行中のプロセスの動作とリソースへのアクセスに影響を与える可能性のある一連の動的変数。このタグは、環境変数に関する質問、または実行中のプロセスの動作とリソースへのアクセスにおける変数値の設定または変更の影響から生じる問題に関する質問に使用します。


3
関数がパイプラインで呼び出されたときに環境変数が設定されない
環境変数を設定する次の再帰関数があります。 function par_set { PAR=$1 VAL=$2 if [ "" != "$1" ] then export ${PAR}=${VAL} echo ${PAR}=${VAL} shift shift par_set $* fi } それを単独で呼び出すと、変数が設定され、標準出力にエコーされます。 $ par_set FN WORKS FN=WORKS $ echo "FN = "$FN FN = WORKS stdoutをファイルにリダイレクトすることもできます: $ par_set REDIR WORKS > out cat out REDIR=WORKS $ echo "REDIR …

2
Tmuxステータスバーシェルコマンドでの環境変数の使用
3つのタイムゾーンを表示するtmuxステータスバーを作成しようとしています US Eastern Time :: UTC :: Central European Time。TZ環境変数を使用すると、dateコマンドは指定されたタイムゾーンの時刻を表示します。 私はこのtmux.conf設定でそうしようとしました: set -g status-right "#[fg=white]#S #I:#P #[fg=yellow]:: %d %b %Y #[fg=green]:: #(TZ=America/New_York date +%H:%M) :: #(date -u +%H:%M) UTC :: #(TZ=Europe/Belgrade date +%H:%M)" ただし、パスTZ=fooはの内部では機能しません#(…)。(私dateは期待したものの代わりにサーバーを取得します)。助言がありますか?

2
zshのローカル変数:zshでのbashの「エクスポート-n」に相当するもの
変数のスコープをシェルに含めようとしていますが、zshで子にそれを表示させません。たとえば、これを.zshrcに入力します。 GREP_OPTIONS=--color=always しかし、次のようにシェルスクリプトを実行すると、 #!/bin/bash echo $GREP_OPTIONS 出力は次のとおりです。 --color=always 私はそれをnullにしたいのですが(上のシェルスクリプトはGREP_OPTIONS変数をまったく見ないはずです)。 bashでは、次のように言うことができますexport -n GREP_OPTIONS=--color=always。これをzshでどのように実現しますか?

2
cronと同じ環境の対話型シェル
私はcrontabの魔法の世界で多くの落とし穴を認識していますが、シェルスクリプトがcrontab。 今私は自分のことを考えましたが/bin/openvt -c8 -- /bin/bash --noprofile -l、ルート権限が必要であり、設定する変数が多すぎ、単純なsu myusername設定では追加の環境がたくさん設定されます。 対話型のbashシェルをcronと同一の環境で起動し、Kubuntuでroot権限を必要としない方法を知っている人はいますか? sshセッション、GUI、および次のOSの1つ以上で動作する場合のボーナス:HP-UX、Solaris、AIX

1
ESの環境をどのように設定しますか?
私はここ数日、esを使って遊んでいますが、(rcのように.esrc)ログイン時に起動スクリプト()のみを実行するという癖/機能があります。各対話型セッションでコードを実行する通常の方法は、そのコードを%prompt関数に配置することです。 もちろん、一度も実行されていない%prompt場合、機能es -lはありません。 それで、質問:.profile(または.xprofile、.xsessionなど)のみをソースする、gdmまたは同様のものを介して入ってくるときのログイン環境をどのように設定しますか?私が思いついた最高のものは: if [ -f "$HOME/.esrc" ]; then eval "`es -l <<-x sh <<<'export -p' x`" fi それは...恐ろしいようです。より良いアプローチはありますか?

3
変数の値を失わずに、変数をアンエクスポートするにはどうすればよいですか?
変数をエクスポートしたとしましょう: foo=bar export foo それでは、エクスポートを解除したいと思います。つまり、もしそうなら、sh -c 'echo "$foo"'私は得るべきではありませんbar。の環境でfooはまったく表示されませんsh -c。 sh -cは単なる例であり、変数の存在を示す簡単な方法です。コマンドは何でもかまいません。環境内の変数の存在によって動作が影響を受けるものである可能性があります。 できます: unset 変数、そしてそれを失う envコマンドごとに使用して削除します。env -u foo sh -c 'echo "$foo"' 現在のシェルをしばらく使用し続けたい場合は非現実的です。 理想的には、変数の値を保持したいのですが、空の変数としても、子プロセスでまったく表示しないようにします。 私はできると思います: otherfoo="$foo"; unset foo; foo="$otherfoo"; unset otherfoo これはotherfoo、すでに存在する場合、踏みにじるリスクがあります。 それが唯一の方法ですか?標準的な方法はありますか?

6
Ruby GEM_HOMEとGEM_PATHを設定する方法
私はLinuxのNOVICEユーザーであり、Linux Mint 17.1を使用しています その問題のために過去3日間でLinux Mintを20回再インストールしましたが、修正できませんでした 新しいLinuxインストールを開始し、ターミナルセッションを閉じてすぐに正常にインストールされた1つのターミナルセッションにgemとrubyなどをインストールしようとすると、rvmを使用してRailsにrubyをインストールしようとしましたが、gemを取得できません。 過去3日間で20回以上再インストールすることで、ウェブも検索しました。/etc/environmentそのセッションでエコーパスに環境変数を入れて/etc/environmentファイルに貼り付けるように言われました。 今でもインストール済みの宝石を取得できません 入力するrvm -vと、次のエラーが表示されます Warning: PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set, see: https://github.com/wayneeseguin/rvm/issues/3212 Warning! PATH is not properly set up, $GEM_HOME is not set, usually this is caused by shell initialization files - check them for 'PATH=...' entries, it …

2
端末を閉じずにすべての変数をクリアする
端末を閉じずにコマンドプロンプトで定義したすべての変数をクリアする方法を知りたいのですが。 たとえば、コマンドプロンプトで次のように変数を設定したとします。 $ a=1 次に、$aターミナルを閉じずに変数(および同様に定義された他の多くの変数)を削除します。使用できunsetましたが、大きいのが多ければ多忙です。変数の

1
グローバルJavaオプションはどこで設定できますか?
jabrefやなどのJavaプログラムに、恐ろしく不適切にレンダリングされたフォントがありrubymineます。これは実行することで修正できます _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref これらのJavaオプションを環境変数としてエクスポートし、コマンドラインからプログラムを起動できることを理解しています。しかし、これらのオプションをグローバルに設定して、どのように起動しても、すべてのJavaプログラムがそれらを認識する方法はありますか? *.desktopJavaプログラムのすべてのファイルを変更できることも知っていますが、グローバルなソリューションを探しています。 java-7-openjdkArch Linuxで使用しています。(FWIWこれは、壊れたjre7-openjdk-headless-infinalityがインストールされている場合は問題ありませんでした。)

2
bash setenvコマンドが見つかりません
次のコマンドを使用しているとき setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH エラーは bash setenv command is not found どのコマンドでsetenvのパスを見つけたら、次のパスを見つけました (/usr/kerberos/sbin:/usr/kerberos/bin:/home/ec2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/ec2/bin:/root/bin)

1
`nohup`を使用して実行されるプログラムの環境変数を設定するにはどうすればよいですか?
(私は既存のBashスクリプトを編集しているので、おそらくここで愚かな間違いをしています...) 次のように、環境変数を引数としてコマンドを保存するシェルスクリプトがあります。 COMMAND="mvn clean install -P $MAVEN_PROFILE" 次に、nohupおおよそ次のようにコマンドを実行します。 nohup $COMMAND > logfile これは機能します。 ここで、Mavenでアクセスできる環境変数を設定します。私は次のようなことをいくつか試しました: COMMAND="FORMAVEN=valueForMaven mvn clean install -P $MAVEN_PROFILE" ...しかし、それは単に次のように終了します: nohup: failed to run command `FORMAVEN=valueForMaven': No such file or directory ここには関係のない概念がいくつかあるように思いますが、どれも理解していないし、知りさえしていません。上記を行うには何が必要ですか?

1
envの出力で確認できる変数を出力できないのはなぜですか?
別のシェルインスタンスの環境変数を設定することに興味があります。だから私はいくつかの研究を行うことにしました。これについてのいくつかの質問を読んだ後、私はそれをテストすることにしました。 2つのシェルAとB(PID 420)を生成し、どちらもを実行していzshます。シェルAIから以下を実行しました。 sudo gdb -p 420 (gdb) call setenv("FOO", "bar", 1) (gdb) detach シェルBから実行するenvと、変数FOOが実際にbarの値で設定されていることがわかります。これにより、シェルBの環境でFOOが正常に初期化されたと思います。ただし、FOOを印刷しようとすると、設定されていないことを示す空の行が表示されます。私には、ここには矛盾があるように感じます。 これは私自身のArch GNU / LinuxシステムとUbuntu VMの両方でテストされました。またbash、変数がenvに表示されない場所でもテストしました。これは私には失望しますが、シェルがスポーン時にその環境のコピーをキャッシュし、それだけを使用する場合は理にかなっています(リンクされた質問の1つで提案されていました)。これはまだzsh変数を見ることができる理由には答えません。 echo $FOO空の出力はなぜですか? 編集 コメントへの入力後、もう少しテストを行うことにしました。結果は以下の表で確認できます。最初の列は、FOO変数が注入されたシェルです。最初の行には、その下に出力を表示できるコマンドが含まれています。変数FOOは次を使用して注入されました:sudo gdb -p 420 -batch -ex 'call setenv("FOO", "bar", 1)'。zsh:に固有のコマンドzsh -c '...'もbashを使用してテストされました。結果は同じであり、簡潔にするためにそれらの出力は省略されました。 Arch GNU / Linux、zsh 5.3.1、bash 4.4.12(1) | | env | grep FOO | echo $FOO …

1
バッシュ:ネストされたセッションの深さはいくつですか?
私がbashシェルを開始したとし ます...そして、bashそのシェル内からの別のセッション ...そしてbashそのセッション内からの別のセッション ...そしてbashそのセッション内からの別のセッション ...(回N)など Nセッションをすべて終了するには、exitN回入力する必要があります。 特定のbashセッション内からネストされている深さを確認するにはどうすればよいですか? 理想的には$STY、スクリーンセッションと同様の環境変数を探しています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.