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
関数と同等のものは何ですか?
直接アナログはありますか?環境変数は、実行可能ファイルを見つけるためのものです。
export VAR=value
はVARをvalueに設定します。 export VAR='my val'
などのスペースが必要な場合は、単一引用符で囲みます。変数を補間する場合は、export VAR="$MY_OTHER_VAR"
などの二重引用符を使用します。
人々がしばしば書くことを提案する理由
VAR=value
export VAR
短いのではなく
export VAR=value
長い形式は短い形式よりも異なるシェルで機能するということです。 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 $
VAR=value
VARをvalueに設定します。
その後 export VAR
は、子プロセスにもそれを提供します。
export VAR=value
は両方を行う速記です。
あなたはexport
を探していると思います-私は間違っているかもしれませんが.. tcshで遊んだことはありません次の構文を使用します。
export VARIABLE=value