web-dev-qa-db-ja.com

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:という変数のローカル変数または環境変数を確認します

el@server /home/el $ set | grep LOL
el@server /home/el $
el@server /home/el $ env | grep LOL
el@server /home/el $

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

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

el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ env | grep LOL
el@server /home/el $

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

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

el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ exec bash
el@server /home/el $ set | grep LOL
el@server /home/el $

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

el@server /home/el $ LOL="so wow much code"
el@server /home/el $ set | grep LOL
LOL='so wow much code'
el@server /home/el $ unset LOL
el@server /home/el $ set | grep LOL
el@server /home/el $

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

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

el@server /home/el $ DOGE="such variable"
el@server /home/el $ export DOGE
el@server /home/el $ set | grep DOGE
DOGE='such variable'
el@server /home/el $ env | grep DOGE
DOGE=such variable

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

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

el@server /home/el $ exec bash
el@server /home/el $ env | grep DOGE
DOGE=such variable
el@server /home/el $ set | grep DOGE
DOGE='such variable'

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

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

el@server /home/el $ export CAN="chuck norris"
el@server /home/el $ env | grep CAN
CAN=chuck norris
el@server /home/el $ set | grep CAN
CAN='chuck norris'
el@server /home/el $ env -i bash
el@server /home/el $ set | grep CAN
el@server /home/el $ env | grep CAN

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

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

el@server /home/el $ export FOO="bar"
el@server /home/el $ env | grep FOO
FOO=bar
el@server /home/el $ unset FOO
el@server /home/el $ env | grep FOO
el@server /home/el $
27
Eric Leschinski

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

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

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

11
iny

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

export VARIABLE=value
7
Oli