zshrc
で宣言した変数はすべて、シェルで環境変数として使用できます。これが起こらないようにしたい。
変数を関数に入れてローカルに設定しようとしましたが、その関数はzshrc
の外でも使用できます。
どのようにすればよいですか私のzshrcで何が私のzshrcに留まるのか?
これらは使用可能ですが、エクスポートされないため、コマンドラインから起動するスクリプトはこれらの変数を取得しません。もしあなたの .zshrc
は次のようになります
function zshrc()
{
local VAR=1
# Do stuff
}
zshrc
その後、zshrc
関数を再度起動する必要はありません。
unfunction zshrc
その後。
Zshの最新バージョンを使用している場合は、無名関数を使用できます。
function () {
local xyz=abc
# whatever
}
関数は自動的に実行されてから破棄されます。スコープの目的でのみ存在します。
これは、zshrcだけでなく任意のソースファイルでも機能します。
Word local
を変数に追加しないと、次のいずれかを実行するまで残ります。
exec zsh
またはexec bash
を実行します。これは、Word local
で割り当てられなかったローカル変数をクリアするだけです。method_name(){
a=11
echo $a
}
method_name(){
local a=11
echo $a
}
この変数のスコープは関数名method_name
で、呼び出されたとき(その後ではなく)関数内でのみ使用できます。
local z=11
echo $z
シェルとニーズに応じて、.bash_profile
または.bashrc
または.zshrc
などを使用して、関数とエイリアスを保存できます。
環境変数とそれぞれのシェルの詳細については、このリファレンスを参照してください
シェル展開を使用してコマンドラインで環境変数を設定する方法を理解するためにこれもお読みください
env
またはprintenv
を使用して環境変数をすばやく表示できます
慣例では大文字を使用します
export A=11
またはexport B="11 is part of this string"
新しいターミナルウィンドウまたはソースの.zshrcまたは.bashrc、あるいは使用しているものを開いていると仮定すると、ターミナルセッションを閉じるまで、この環境変数を使用できます。注:設定時には$を使用しないでください。ただし、変数を参照する場合は$を使用してください。
echo "A is equal to: $A and that is pretty Nice"
echo "$A"
source ~/path/to/file/filename
source ~/.bash_profile
上記のコードを使用しますが、〜/ .bash_profileまたは〜/ .zshrcまたはその他のそれぞれのファイルに配置します。ファイルを保存し、ソースにします。
export B="11 is part of this string"
env
その環境変数を削除するには、その環境変数をファイルから削除し、再度ファイルを入手します。
unset B
設定を解除する場合、$
はありません。
export BLABLA="environment variable set from the command line, saved in file for later use"
送信先のファイルを確認してください。新しい行で始まっていない可能性があります。他の関数やエイリアスなどの最後の行に連結されている可能性があります。
これは完全に包括的な答えではありませんが、正しい方向への大きな一歩です。これは、ターミナルシェルのスコープを設定、使用、および削除する方法を示しています。