Shell编程基础(三)环境变量 & 位置变量 & 系统内置变量

环境变量 &

环境变量

在脚本种直接定义的变量,只能在当前shell进程中使用

若想要在其他shell进程中使用,可以将变量声明为 环境变量

export 变量名 :用于导出已有变量到环境变量

export 变量名=变量值:直接声明一个新的变量为环境变量
注意:命令行 执行 export 声明的环境变量,只在当前shell 以及 其子shell中有效,其他不相关的shell进程中无效

要想环境变量全局有效,需在指定的文件中定义环境变量。

环境变量范围

父子进程之间有效

在当前进程中,通过 export 指定的环境变量,只在当进程及其子进程中有效

指定用户有效

在用户目录(cd 或者 cd ~ 可切换到当前用户目录)下有个文件 ==.bash_profile ==这里面声明的环境变量,只对当前用户有效。

如 root用户的目录为 /root

自定义的用户(kalpana)目录为**/home/kalpana**

其原理是,开机登录时会加载这个脚本。因此也可以在这个脚本里面做一些,开机的初始化操作(自启动应用等)。

所有用户有效

针对所有用户都有效的环境变量可以在 /etc/profile 下进行声明。

原理同上,只不过这个文件是所有用户在开机 时,会加载这个文件。

同样这里面可以设置一些初始化操作。

位置变量

我们在执行命令,脚本时,有时会传参,那么在脚本内,就可以通过

$ + 序号的方式获取相应位置的参数了。

$0 代表的是命令本身,1开始取参数

位置变量和read 交互式输入变量都可以达到类似的效果,但是read可以给出提示语更加直观

系统内置变量

$0 : 脚本名称

#:参数个数;这里可以联想到 字符串长度 {#str} 和 数组长度 ${#arr@/\*}

$?:脚本返回值 0代表成功

$$:当前shell进程id

$@:参数列表

$ *:参数拼接的字符串

相关推荐
苏灿烤鱼10 小时前
把 Agent 做成一家公司,真比通用提示词好用吗?
python·agent·shell
寺中人1 天前
Linux 基础命令入门实战教程:从零掌握常用操作,新手快速上手
linux·运维·服务器·shell·linux 命令·linux 基础教程·linux 入门
k4m7v2pz4 天前
34 天 33 个版本:rvs(rust-verb-shell)如何用版本号对抗 AI 误判
rust·shell·命令行工具·ai agent·系统信息·跨平台开发
笨笨狗吞噬者4 天前
IRIS: shell 中的智能实时输入提示工具
github·shell
Lyra_Infra7 天前
Java 应用启动脚本 JDK 路径适配优化文档
java·shell
寒水馨9 天前
macOS下载、安装PowerShell-v7.6.4(附安装包powershell-7.6.4-osx-arm64.pkg)
macos·自动化·跨平台·shell·脚本·命令行·powershell
爱码少年10 天前
一条Shell命令实现文件目录服务器间快速转移
服务器·shell
重生的黑客12 天前
Linux 进程程序替换与自定义 Shell:从 exec 函数族到命令行解释器
linux·运维·服务器·shell
逻极15 天前
Shell脚本实战:从“能跑”到“高效”的3个关键跃升
linux·服务器·shell·脚本
k4m7v2pz16 天前
rvs(rust-verb-shell)v26.7.12 更新:借鉴 ripgrep、自身可观测、修了 mkdir
rust·shell