我在my中声明的任何变量zshrc
在shell中都可用作环境变量.我不希望这种情况发生.
我尝试将变量放在一个函数中并将它们设置为本地,但是该函数在该函数之外可用zshrc
.
我怎样才能让我的zshrc中发生的事情停留在我的zshrc中?
qqx*_*qqx 31
如果您使用的是最新版本的zsh,则可以使用匿名函数:
function () {
local xyz=abc
# whatever
}
Run Code Online (Sandbox Code Playgroud)
该函数将自动执行然后丢弃,它仅用于作用域.
这适用于任何源文件,而不仅仅是zshrc.
ZyX*_*ZyX 22
它们是可用的,但它们不会被导出,因此从命令行启动的脚本不会获取这些变量.如果你.zshrc
看起来像
function zshrc()
{
local VAR=1
# Do stuff
}
zshrc
Run Code Online (Sandbox Code Playgroud)
然后你再也不想再启动zshrc
功能了
unfunction zshrc
Run Code Online (Sandbox Code Playgroud)
然后.
如果您没有将单词附加local
到变量,它将保留,直到您执行以下操作之一:
exec zsh
或exec bash
取决于您的shell.这只是清除了未分配单词的本地变量local
.method_name(){
a=11
echo $a
}
Run Code Online (Sandbox Code Playgroud)
method_name(){
local a=11
echo $a
}
Run Code Online (Sandbox Code Playgroud)
此变量的作用域为函数名称method_name
,仅在调用时(而不是之后)在函数内部可用.
local z=11
echo $z
根据您的外壳和需求,你可以使用.bash_profile
或.bashrc
或.zshrc
等存储功能和别名.
另请阅读此内容以了解如何使用shell扩展在命令行上设置环境变量
您可以使用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"
检查您要发送给它的文件,它可能无法在新行上启动,它可能已连接到您的最后一行,这是其他功能,别名或其他.
这不是一个完全全面的答案,但它是朝着正确方向迈出的一大步.它显示了如何设置,使用和删除终端shell中的作用域.
归档时间: |
|
查看次数: |
14170 次 |
最近记录: |