一、前言变量是 Shell 编程的基础所有判断、循环、函数、脚本逻辑都依赖变量。Shell 变量分为四大类自定义变量、环境变量、位置变量、特殊内置变量。本篇全覆盖定义、赋值、取值、规则、实战场景、面试考点。二、自定义变量普通变量1. 定义规则必考变量名由字母、数字、下划线组成不能以数字开头等号两边绝对不能有空格字符串默认不用引号含空格必须加双引号变量默认都是字符串类型无严格数据类型2. 定义与调用#!/bin/bash name运维笔记 age18 # 调用变量 echo $name echo ${age}3. 变量赋值方式# 1. 直接赋值 a100 # 2. 命令结果赋值重点 time$(date %H:%M:%S) echo $time # 3. 交互式输入赋值 read -p 请输入内容 input echo 你输入的是$input4. 变量销毁unset name三、环境变量全局变量普通变量仅当前 Shell 有效环境变量全局有效子 Shell 也能继承常用于系统配置、路径、脚本全局参数。1. 定义环境变量# 临时环境变量当前终端有效 export SCHOOLLinuxStudy2. 永久环境变量用户级~/.bashrc、~/.bash_profile系统级/etc/profile写入 export 配置后执行source /etc/profile生效。3. 常见系统环境变量echo $PATH # 系统命令路径 echo $USER # 当前用户 echo $HOME # 家目录 echo $PWD # 当前路径 echo $SHELL # 默认解释器四、位置变量脚本传参核心执行脚本时跟在脚本后的参数自动接收无需定义多用于脚本传参。位置变量参数表$0脚本本身名称$1 $2 ... $9第1~9个参数${10}第10个参数必须大括号$#参数总个数$*所有参数整体作为一个字符串$所有参数独立列表循环首选实战案例 test.sh#!/bin/bash echo 脚本名$0 echo 第一个参数$1 echo 参数总数$# echo 所有参数$*执行bash test.sh 11 22 33五、特殊变量面试考点$* 和 $ 区别$*将所有参数看成一个整体$将所有参数看成独立列表for循环遍历参数永远用 $六、变量总结自定义变量局部、当前Shell、临时使用环境变量全局、子Shell继承、系统配置位置变量脚本传参、自动化脚本必备
Shell变量详解——自定义变量、环境变量、位置变量、特殊变量(全集)
一、前言变量是 Shell 编程的基础所有判断、循环、函数、脚本逻辑都依赖变量。Shell 变量分为四大类自定义变量、环境变量、位置变量、特殊内置变量。本篇全覆盖定义、赋值、取值、规则、实战场景、面试考点。二、自定义变量普通变量1. 定义规则必考变量名由字母、数字、下划线组成不能以数字开头等号两边绝对不能有空格字符串默认不用引号含空格必须加双引号变量默认都是字符串类型无严格数据类型2. 定义与调用#!/bin/bash name运维笔记 age18 # 调用变量 echo $name echo ${age}3. 变量赋值方式# 1. 直接赋值 a100 # 2. 命令结果赋值重点 time$(date %H:%M:%S) echo $time # 3. 交互式输入赋值 read -p 请输入内容 input echo 你输入的是$input4. 变量销毁unset name三、环境变量全局变量普通变量仅当前 Shell 有效环境变量全局有效子 Shell 也能继承常用于系统配置、路径、脚本全局参数。1. 定义环境变量# 临时环境变量当前终端有效 export SCHOOLLinuxStudy2. 永久环境变量用户级~/.bashrc、~/.bash_profile系统级/etc/profile写入 export 配置后执行source /etc/profile生效。3. 常见系统环境变量echo $PATH # 系统命令路径 echo $USER # 当前用户 echo $HOME # 家目录 echo $PWD # 当前路径 echo $SHELL # 默认解释器四、位置变量脚本传参核心执行脚本时跟在脚本后的参数自动接收无需定义多用于脚本传参。位置变量参数表$0脚本本身名称$1 $2 ... $9第1~9个参数${10}第10个参数必须大括号$#参数总个数$*所有参数整体作为一个字符串$所有参数独立列表循环首选实战案例 test.sh#!/bin/bash echo 脚本名$0 echo 第一个参数$1 echo 参数总数$# echo 所有参数$*执行bash test.sh 11 22 33五、特殊变量面试考点$* 和 $ 区别$*将所有参数看成一个整体$将所有参数看成独立列表for循环遍历参数永远用 $六、变量总结自定义变量局部、当前Shell、临时使用环境变量全局、子Shell继承、系统配置位置变量脚本传参、自动化脚本必备