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

$@:参数列表

$ *:参数拼接的字符串

相关推荐
柒号华仔1 天前
「速通Shell」常用命令(中)——进程、网络与系统信息
shell
YuSun_WK1 天前
shell脚本
shell·脚本
柒号华仔4 天前
「速通Shell」Shell 脚本测试详解
shell
柒号华仔5 天前
「速通Shell」Shell 脚本模块化
shell
柒号华仔6 天前
「速通Shell」Shell编程的错误处理与日志
shell
柒号华仔7 天前
「速通Shell」Shell 数组、关联数组与 mapfile
shell
苏灿烤鱼9 天前
一套进程代替八件套,桌面更稳还是单点更大
linux·github·shell
茶本无香9 天前
通用报表自动化框架:Java调用Shell传参执行PostgreSQL SQL模板
java·sql·postgresql·shell
柒号华仔10 天前
「速通Shell」Shell 循环与遍历
shell·编程语言
十里春风_jzh11 天前
Tabby 修改版:更美观的现代终端
shell·tabby