webdevqa.jp.net

Bashを使用してLinuxで環境変数を設定する

tcshには、次のスクリプトが機能しています。

#!/bin/tcsh
setenv X_ROOT /some/specified/path

setenv XDB    ${X_ROOT}/db
setenv PATH   ${X_ROOT}/bin:${PATH}

xrun -d xdb1 -i $1 > $2

Bashのtcsh setenv関数と同等のものは何ですか?

直接アナログはありますか?環境変数は、実行可能ファイルを見つけるためのものです。

68
pbh101

export VAR=valueはVARをvalueに設定します。 export VAR='my val'などのスペースが必要な場合は、単一引用符で囲みます。変数を補間する場合は、export VAR="$MY_OTHER_VAR"などの二重引用符を使用します。

104
mipadi

人々がしばしば書くことを提案する理由

VAR=value
export VAR

短いのではなく

export VAR=value

長い形式は短い形式よりも異なるシェルで機能するということです。 bashを扱っていることがわかっている場合は、もちろんどちらも正常に機能します。

33
zaphod

LinuxでBashを使用してローカル変数と環境変数を設定する

LOL in Bash:という変数のローカル変数または環境変数を確認します

[email protected] /home/el $ set | grep LOL
[email protected] /home/el $
[email protected] /home/el $ env | grep LOL
[email protected] /home/el $

健全性チェック、LOLと呼ばれるローカル変数または環境変数はありません。

LOLローカルではなく、環境ではなく、というローカル変数を設定します。設定してください:

[email protected] /home/el $ LOL="so wow much code"
[email protected] /home/el $ set | grep LOL
LOL='so wow much code'
[email protected] /home/el $ env | grep LOL
[email protected] /home/el $

変数「LOL」はローカル変数に存在しますが、環境変数には存在しません。 LOLは、端末を再起動するか、ログアウト/ログインするか、exec bash

ローカル変数を設定してから、Bashのすべてのローカル変数をクリアします

[email protected] /home/el $ LOL="so wow much code"
[email protected] /home/el $ set | grep LOL
LOL='so wow much code'
[email protected] /home/el $ exec bash
[email protected] /home/el $ set | grep LOL
[email protected] /home/el $

変数を1つだけ設定解除することもできます:

[email protected] /home/el $ LOL="so wow much code"
[email protected] /home/el $ set | grep LOL
LOL='so wow much code'
[email protected] /home/el $ unset LOL
[email protected] /home/el $ set | grep LOL
[email protected] /home/el $

ローカル変数LOLはなくなりました。

ローカル変数を環境変数に昇格させます:

[email protected] /home/el $ DOGE="such variable"
[email protected] /home/el $ export DOGE
[email protected] /home/el $ set | grep DOGE
DOGE='such variable'
[email protected] /home/el $ env | grep DOGE
DOGE=such variable

エクスポートすると、ローカル変数と環境変数の両方として表示されることに注意してください。

上記のエクスポートされた変数DOGEは、Bashのリセット後も存続します。

[email protected] /home/el $ exec bash
[email protected] /home/el $ env | grep DOGE
DOGE=such variable
[email protected] /home/el $ set | grep DOGE
DOGE='such variable'

すべての環境変数の設定解除:

ログアウト/ログインせずにすべての環境変数をリセットするには、チャックノリスの缶を取り出す必要があります。

[email protected] /home/el $ export CAN="chuck norris"
[email protected] /home/el $ env | grep CAN
CAN=chuck norris
[email protected] /home/el $ set | grep CAN
CAN='chuck norris'
[email protected] /home/el $ env -i bash
[email protected] /home/el $ set | grep CAN
[email protected] /home/el $ env | grep CAN

環境変数を作成し、ターミナルをリセットしてそれらを削除しました。

または、次のように環境変数を手動で設定および設定解除できます

[email protected] /home/el $ export FOO="bar"
[email protected] /home/el $ env | grep FOO
FOO=bar
[email protected] /home/el $ unset FOO
[email protected] /home/el $ env | grep FOO
[email protected] /home/el $
27
Eric Leschinski

VAR=value VARをvalueに設定します。

その後 export VARは、子プロセスにもそれを提供します。

export VAR=valueは両方を行う速記です。

11
iny

あなたはexportを探していると思います-私は間違っているかもしれませんが.. tcshで遊んだことはありません次の構文を使用します。

export VARIABLE=value
7
Oli