Linux系统中shell脚本的变量

本文详细介绍了Linux Shell脚本中变量的使用,包括自定义变量的创建、赋值、查看,以及环境变量、只读变量、位置变量和预定义变量等。讲解了变量的类型、赋值时引号的使用,还涉及到整数和浮点数的运算。同时,阐述了环境变量的作用范围和配置文件,强调了export命令在设置全局变量中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一.Shell脚本变量简介

二.shell变量的作用

三. shell 变量的类型

四. 自定义变量

4.1 自定义变量命令要求

4.2 定义与查看变量

 4.3 赋值时使用的引号

4.4 从键盘输入内容为变量赋值

4.5 变量的运算

4.5.1  整数变量的运算

4.5.2 浮点数运算

 五.环境变量

5.1 使用env查看环境变量 ​编辑

5.2 环境变量配置文件

5.3 设置变量的作用范围

5.3.1 export命令

 5.3.2 将变量添加进配置文件/etc/profile

 六. 只读变量

七. 位置变量

八. 预定义变量


一.Shell脚本变量简介

变量是计算机语言中能储存计算结果或能表示值的抽象概念。保存将来会变化的数据,即使数据变

化,直接调用变量即可。

Shell 变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或

系统环境的变化而相应变化。通过使用变量,Shell 程序能够提供更加灵活的功能,适应性更强。

二.shell变量的作用

用来存放系统和用户需要使用的特定参数(值)

  • 变量名:使用固定的名称,由系统预设或用户定义

  • 变量值:能够根据用户设置、系统环境的变化而变化

三. shell 变量的类型

  • 自定义变量:由用户自己定义、修改和使用

  • 特殊变量:环境变量,只读变量,位置变量,预定义变量

四. 自定义变量

4.1 自定义变量命令要求

区分大小写

不能使程序中的保留字和内置变量:如:if, for,hostname 命令 a=

只能使用数字、字母及下划线,且不能以数字开头

不要使用内置的变量,使用英文尽量使用词义通俗易懂,PATH

大驼峰 StudentFirstName

小驼峰 studentFirstName

下划线 student_name


4.2 定义与查看变量

定义变量:变量名以字母或下划线开头,区分大小写,建议全大写     变量名=变量值

查看变量值:echo $变量名

 使用大括号{}定义变量的范围,将变量名分隔出来

 删除变量unset

 4.3 赋值时使用的引号

  • 双引号" ":允许通过$符号引用其他变量值
  • 单引号' ':禁止引用其他变量值,$视为普通字符,
  • 反撇号``:命令替换,提取命令执行后的输出结果与$( )效果相同
  • {}可以分隔变量值
  • 定义变量时中间有特殊字符时 比如空格 用单引号或者双引号括起来

 双引号与单引号

  定义变量时中间有特殊字符

4.4 从键盘输入内容为变量赋值

格式:read 变量名

  • read -p "提示内容" 变量名 

 read 变量名

 

 

4.5 变量的运算

4.5.1  整数变量的运算

shell默认只支持整数的运算

运算符:+ 加法、- 减法、* 乘法、/除法、% 取余

 

 

4.5.2 浮点数运算

使用bc计算器

 

使用awk

 五.环境变量

5.1 使用env查看环境变量 

常用环境变量

$USER 表示用户名称
$HOME 表示用户的宿主目录
$LANG 表示语言和字符集
$PWD 表示当前所在工作目录
$PATH 表示可执行用户程序的默认路径
环境变量:

可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量

一旦子进程修改从父进程继承的变量,将会新的值传递给孙子进程

一般只在系统配置文件中使用,在脚本中较少使用

5.2 环境变量配置文件

四个系统级的环境配置变量/etc/profile  /etc/bashrc 或者(自己家目录中的)/root/.bash_profile/ root/.bashrc .bash_profile  /root/.bashrc

/etc/profile 
系统每次启动都会自动执行 /etc/profile 文件里的命令,这个文件是对全局有效的(所有的shell环境和用户)

~/.bash_profile ~/.bashrc
不同用户登录系统 会自动执行 自己家目录中的 ~/.bash_profile 文件中的命令,自动执行 ~/.bashrc ~/.bashrc 当前用户每切换一个shell环境都会自动执行

/etc/bashrc
/etc/bashrc 针对所有用户的,用户每切换一个shell环境都会自动执行
 

5.3 设置变量的作用范围

5.3.1 export命令

默认情况下,新定义的变量只在当前的shell环境中有效,因此称为局部变量,当进入子程序或新的shell环境中,局部变量将无法再起作用。

可以通过内部命令export将指定的变量为全局变量,使用户定义的变量在所子shell环境中可以继续使用

 

 5.3.2 将变量添加进配置文件/etc/profile

  • 子进程中定义一个变量 退出子进程当前环境,回到父进程变量值不存在

 换个终端打开shell

所以,在子进程中定义一个变量 退出子进程当前环境 export变量就会自动消失,换个终端打开shell定义的全局变量 export也会消失所以定义全局变量时通常加入 配置文件/etc/profile 

 六. 只读变量

变量值不允许修改(重新赋值)的情况            无法使用 unset删除

最快方法重启

 七. 位置变量

位置变量也称为位置参数,使用$1、$2、$3、…、$9 、${10}表示

$10:表示位置变量$1后面跟着0

 

 

八. 预定义变量

 $0脚本本身

 

 

 $?上一条命令或者脚本执行后返回的状态码

$#脚本后面跟的参数(位置变量)的个数

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值