Linux入门进阶-如何在Linux中使用export命令

简单来说,export命令是Linux中设置和显示环境变量的强大工具,但其作用范围仅限于当前Shell会话及其子进程。
其实很简单。
主要用途是定义或更改变量,例如:export MY_VAR="Hello"。
我们先来说说最重要的事情。
如果要更改现有变量(例如 PATH),可以这样做:export PATH=$PATH:/new path,例如添加 MySQL 路径。

还有一点:可以使用export -p查看所有环境变量,也可以使用grep过滤特定变量,例如查看所有包含“PATH”的变量:export -p | grep 路径。
起初我以为这是一个简单的命令,但后来我意识到这是错误的。
还有更高级的方法可以使用导出,例如导出功能。
使用 -f 选项:myfunc(){echo "Hello";} 然后导出 -f myfunc。

还有一个更重要的细节。
如果你想删除某个变量的导出而不是完全删除该变量,可以使用export -n 变量名。
这样,虽然变量仍然存在,但子进程将无法访问它。

在 shell 脚本中使用导出时,请确保变量对子 shell 可见。
您可以在脚本的开头添加导出变量的名称。
很多人没有注意到这一点,但实际上它非常重要。

至于永久作用,临时变量只在当前shell中有效。
要使它们在全球范围内持久存在,您可以更改 /etc/profile 或 /etc/bashrc,然后运行原始 /etc/profile。
如果用户级别不变,则更改~/.bashrc或~/.bash_profile,并同样执行原~/.bashrc文件。

数量限制是出口中需要注意的一个方面。
其变量仅对当前 shell 及其子进程有效。
更改PATH时,建议保留原来的路径,避免覆盖系统路径。
调试脚本时,可以通过 echo $variable name 检查变量是否导出成功。

最后,我认为值得尝试的剧本——演出脚本之间的变量。
例如,在父脚本中导出变量,然后在子脚本中直接使用它们。
这样的使用可以让你的脚本更加灵活,满足不同场景的需求。
通过智能地使用导出,您可以有效地管理环境变量,以满足临时配置和脚本协作的需求。

如何在Linux中创建函数 Linux shell函数定义技巧

我们直接进入正题吧。
以下是在 Linux Shell 中编写函数的方法:
1 .定义函数只有两种方法。
函数的形式更加直观 简单的括号通常在较旧的脚本中使用
2 如何传递参数? $1 ,$2 位置参数 $@ 空格将被保留 像堆栈弹出一样使用 Shift
3 小心变量 默认情况下会发生全局冲突 Local声明局部变量
4 如何检测错误? 返回0即成功 $?查看最后的状态码 设置-e严格模式
5 功能如何使用? 一个调节另一个 源加载库文件
6 为什么要写作业? 重用代码 维护方便 提高可读性
上周刚刚处理了一个监控脚本,功能很好用,比直接写几行命令好多了。
您的具体需求是什么?

Linux环境变量相关文件介绍

说白了,Linux环境变量只是一堆配置文件的作用,但是顺序和范围一定要了解。

我们先来说最重要的一点:像/etc/environment这样的系统文件都是全局变量。
更改需要重新启动系统才能生效。
它们适合所有用户。
格式是简单的键值对,例如PATH=/usr/local/bin,但不要添加注释,否则pam_env模块会变得混乱。
像 ~/.bashrc 这样的用户文件是您自己的变量。
您可以通过打开新终端来更改它们。
您可以将 shell 逻辑写入其中,例如 alias ll='ls -la'。
还有一点是/etc/profile.d/.sh是文件系统的补充,专门用来存储软件自带的变量,比如java.sh。
这样/etc/profile就可以不用修改就可以使用,维护起来更方便。
还有另一个重要的细节。
例如,SSH 登录将首先查找 ~/.zprofile,通常会调整 ~/.zshrc。
非登录 shell 将直接使用 ~/.bashrc。
结果将根据顺序而有所不同。

一开始我以为/etc/profile和~/.bashrc的功能是一样的,后来发现不对。
前者添加到所有用户的登录 shell 中,而后者添加到当前用户的交互 shell 中。
差异是巨大的。
等等,还有一件事,/etc/security/pam_env.conf使用PAM模块来设置条件变量,例如DEFAULT_USER=/home/username,可以按用户组设置,但使用的人不多。

最后提醒:不同的 shell 和发行版的默认加载顺序是不同的。
例如,Zsh默认不加载/etc/profile,直接从~/.zshrc启动。
进行更改之前您必须检查文档。