shell 脚本: 变量的使用与定义 -系统与环境变量和用户变量的详细说明

本文介绍了Linux Shell脚本中变量的使用,包括系统变量、环境变量和用户变量。通过`env`和`set`命令查看系统环境变量,`export`导出用户变量。常用系统变量如$SHELL、$HOME、$PATH等,并讨论了普通变量、临时环境变量的区别及作用域。还讲解了位置变量、特殊变量和赋值运算符的用法,强调了赋值时处理空格和特殊字符的方法。

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

         shell 是linux 系统中非常强大的工具,用来处理很多重复性工作。比如批量部署机器,安装系统。创建用户,监控机器状态等。如果靠人工操作,会浪费大量的人力与精力。重复的工作不会创造什么价值。shell 可以为我们批量高效完成一些任务。

       shell中 需要先从变量学习开始。

 1. 变量分为系统变量,用户变量和环境变量。

       在命令行提示符直接执行 env、set 查看系统或环境变量。env 显示用户环境变量,set 显示 Shell
预先定义好的变量以及用户变量。可以通过 export 导出成用户变量;

       一些写 Shell 脚本时常用的系统变量: 这些变量不区分系统版本,都可以使用。
$SHELL  默认 Shell
$HOME  当前用户家目录
$IFS  内部字段分隔符
$LANG  默认语言
$PATH  默认可执行程序路径
$PWD  当前目录
$UID  当前用户 ID
$USER  当前用户
$HISTSIZE  历史命令大小,可通过 HISTTIMEFORMAT 变量设置命令执行时间
$RANDOM  随机生成一个 0 至 32767 的整数
$HOSTNAME  主机名

2. 普通变量与临时环境变量

普通变量定义:var=value     变量名=值。 最简洁的变量定义 
临时环境变量定义:export var=value。  比如export $JAVA_HOME=/xxx/xx/jdk/
变量引用:$var
下面看下他们之间区别:
Shell 进程的环境变量作用域是 Shell 进程,当 export 导入到系统变量时,则作用域是 Shell 进程及其 Shell 子进程;

注意:  所以在当前 shell 定义的变量一定要 export,否则在写脚本时,会引用不到;

3. 位置变量

  是函数或脚本后跟的第 n 个参数; $1-$n,需要注意的是从第 10 个开始要用花括号调用,例如${10};shift 可对位置变量控制。

  每执行一次 shift 命令,位置变量个数就会减一,而变量值则提前一位。shift n,可设置向前移动n 位;

  shell中的特殊变量。

特殊变量
$0  脚本自身名字
$?  返回上一条命令是否执行成功,0 为执行成功,非 0 则为执行失败
$#  位置参数总数
$*  所有的位置参数被看做一个字符串
$@  每个位置参数被看做独立的字符串
$$  当前进程 PID
$!  上一条运行后台进程的 PID

   5. 赋值运算符

   例如: age=22;  变量age 赋值为22.   = 表示赋值

   例如: += 表示2个变量相加。 age=22; age+=123

 变量的引用使用$. 变量名。

 

对于变量与其他字符拼接,需要使用括号括起来引用变量的值。

 注意: 在变量赋值时,如果值有空格,Shell 会把空格后面的字符串解释为命令;

    这样的写法,都不能赋值成功。

单引号是告诉 Shell 忽略特殊字符,而双引号则解释特殊符号原有的意义,比如$、!;对于需要使用的特殊符号,需要转义可以使用原有符号的意义。

变量部分基本就是这些注意的地方。写脚本是多注意。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值