Shell脚本②变量

发布时间:2024年01月24日

目录

一.Shell脚本变量基本概述

1.定义

2.作用

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

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

3.范围

(1)临时设置

(2)永久设置

4.删除变量

二.整数变量运算

1.公式:result=$(expr 变量1 运算符 变量2)

2.公式:result=$((变量1 运算符 变量2))

3.公式:result=$[变量1 运算符 变量2]

4.公式:let result=变量1 运算符 变量2

三.特殊变量

1.环境变量概念

(1)常用的环境变量

(2)设置系统根据环境变量自动设置可执行程序

2.只读变量

(1)变量值不允许修改(重新赋值)的情况

(2)无法使用 unset 删除

(3)最快方法重启

3.位置变量

4.预定义变量


一.Shell脚本变量基本概述

1.定义

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

化,直接调用变量即可。

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

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

2.作用

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

(1)变量名:使用固定的名称,由系统预设或用户定义
(2)变量值:能够根据用户设置、系统环境的变化而变化

3.范围

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

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

格式:

export 变量名=变量值

(1)临时设置

(2)永久设置
vim /etc/profile
export PATH+=:/mnt
[root@localhost data]#source /etc/profile
[root@localhost data]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/data:/mnt

4.删除变量

格式:

unset 变量名

二.整数变量运算

格式:expr 变量1 运算符 变量2 [运算符 变量3]

运算符:+? ?-? ?\*? ?/? %(取余)

1.

1.公式:result=$(expr 变量1 运算符 变量2)

2.公式:result=$((变量1 运算符 变量2))

3.公式:result=$[变量1 运算符 变量2]

4.公式:let result=变量1 运算符 变量2

三.特殊变量

1.环境变量概念

  • 由系统提前创建,用来设置用户的工作环境

  • 可以使用env查看环境变量

  • 需要记住的常用环境变量

(1)常用的环境变量
  • $USER 表示用户名称
  • $HOME 表示用户的宿主目录
  • $LANG 表示语言和字符集
  • $PWD 表示当前所在工作目录
  • $PATH 表示可执行用户程序的默认路径
(2)设置系统根据环境变量自动设置可执行程序
echo $PATH						#查看当前搜索路径
PATH="$PATH:/root"				#将/root目录添加到搜索路径
export PATH="$PATH:/root"		#输出为全局环境变量
 
设置永久有效:
echo 'export PATH=$PATH:/root' >> /etc/profile			#将全局环境变量追加到/etc/profile中

2.只读变量

格式:

readonly [选项] [参数]

(1)变量值不允许修改(重新赋值)的情况
(2)无法使用 unset 删除
(3)最快方法重启

3.位置变量

当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。

$n: n为数字,$0代表命令本身,$1- $9代表带一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为${10}

4.预定义变量

$*表示所有位置参数的内容看成一个整体返回
$@表示所有位置参数的内容分割成n份,每份作为一个独立的个体返回

$?

表示前一条命令执行后的返回状态,返回值为 0 表示执行正确,返回任何非 0值均表示执行出现异常
$#表示命令行中位置参数的总个数
$0表示当前执行的脚本或程序的名称 即当前脚本的名字
$$当前进程ID
$!后台任务最后一个ID
文章来源:https://blog.csdn.net/Kiryu7/article/details/135779108
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。