Linux 变量类型

在Linux系统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家:

一、bash变量类型:

本地变量
局部变量
环境变量
位置变量
特殊变量(内置)

二、本地变量:

varname=value:作用域为整个bash进程可以使用;

变量命名规范:

1. 只能含字母、数字和下划线,并且以字母和下划线开头
2. 最好不要跟系统已有的环境变量重名
3. 见名知意

三、局部变量:

local varname=value:作用域为当前代码段;

四、环境变量:

作用域为当前shell进程及其子进程,不能影响到其父进程;
export varname=value “导出”,如果变量已经定义可以只是用变量名 export varname,即
1. export varname=value
2. varname=value
export varname
脚本在执行命令时会启动一个子shell环境变量:
系统自动执行的脚本(非命令行启动)就需要自我定义需要的个环境变量;

五、位置变量:

$1,$2,$3,……
cat first.sh test.txt hello
$1: first.sh
$2: test.txt
$3: hello
shift:踢掉参数
shift n:踢掉n个参数,默认踢掉一个参数

六、特殊变量:

$?:上一个命令执行状态的返回值:

程序执行可能有两种返回值:
1. 程序执行结果
2. 程序状态返回吗(0-255)
0 则为执行正确
1-255 则执行出错(1,2,127系统预留);

$#:获取当前shell命令行中参数的总个数
$*:获取当前shell的所有参数 “$1 $2 $3 …,受IFS控制
$@:这个程序的所有参数 “$1″ “$2″ “$3″ “…”,不受IFS控制
$0 获取当前执行的shell脚本的文件名
$n 获取当前执行的shell脚本的第n个参数值,n=1..9
$$ 获取当前shell的进程号(PID)
$! 执行上一个指令的PID

### Linux 系统中变量的类型及其使用方法 在 Linux 系统中,变量分为环境变量和 shell 变量。环境变量是全局的,可以在整个系统或特定用户会话中访问;而 shell 变量仅限于当前 shell 会话。以下是对变量类型的详细说明及使用方法: #### 1. 环境变量 环境变量又可以细分为系统环境变量和用户自定义环境变量。这些变量通过 `export` 命令以“变量名=变量值”的形式定义,并存储在特定的配置文件中[^2]。 - **系统环境变量** 系统环境变量通常定义在 `/etc/profile`、`/etc/profile.d/*.sh` 和 `/etc/bashrc` 文件中。这些文件中的变量对所有用户生效。例如,`PATH` 是一个典型的系统环境变量,用于指定可执行文件的搜索路径。 - **用户自定义环境变量** 用户自定义环境变量定义在用户的家目录下的 `~/.bash_profile` 或 `~/.bashrc` 文件中。这些变量仅对特定用户生效,并且优先级高于系统环境变量。如果在同一变量名下存在重复定义,则用户自定义变量会覆盖系统定义的变量。例如,`JAVA_HOME` 是一个常见的用户自定义环境变量,用于指定 JDK 的安装路径。 #### 2. Shell 变量 Shell 变量仅在当前 shell 会话中有效。它们不需要通过 `export` 命令导出,因此不会传递到子进程。例如,在脚本中定义的变量通常是 shell 变量。 ```bash # 定义一个 shell 变量 MY_VAR="Hello World" # 打印变量值 echo $MY_VAR ``` #### 3. 变量的使用方法 - **定义变量** 使用“变量名=变量值”的格式定义变量变量名不能包含空格或特殊字符,且建议使用大写字母。 - **访问变量** 使用 `$` 符号加变量名来访问变量的值。例如:`echo $MY_VAR`。 - **导出变量** 使用 `export` 命令将 shell 变量转换为环境变量。例如:`export MY_VAR="Hello World"`。 - **删除变量** 使用 `unset` 命令删除变量。例如:`unset MY_VAR`。 #### 4. 示例 以下是一个简单的示例,展示如何定义和使用变量: ```bash # 定义一个 shell 变量 MY_VAR="Hello World" # 将其导出为环境变量 export MY_VAR # 在子进程中访问该变量 bash -c 'echo $MY_VAR' ``` #### 5. 注意事项 - 如果需要在多个 shell 会话中使用变量,请确保将其导出为环境变量。 - 用户自定义环境变量会覆盖系统环境变量,因此在定义时需谨慎。 - 在编写脚本时,可以通过 `source` 命令加载配置文件中的变量定义。例如:`source ~/.bashrc`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值