一、shell变量

shell变量

一、 变量定义

  1. 变量名通常由大小写字母、数字和下划线(_)组成,但不能以数字开头
  2. 通过等号(=)为变量分配值,等号两边不能有空格
  3. 变量存储的数据类型是整数值和字符串值
  4. 在对变量赋于字符串值时,建议使用引号将其包裹。如果字符串中存在空格,请一定要使用单引号或双引号将整个内容包裹。注意:单引号里的内容原封不动的输出,双引号里有变量的调用则会调用变量
[xf@xuexi ~]$ Var=1
[xf@xuexi ~]$ Var1="$Var"
[xf@xuexi ~]$ Var2='$Var'
[xf@xuexi ~]$ echo $Var1
1
[xf@xuexi ~]$ echo $Var2
$Var
  1. 要对变量进行调用时,在变量名前加美元符号$
  2. 如果需要增加变量的值,那么可以进行变量值的叠加。不够变量需要用双引号包含" 变 量 名 " 或 变量名"或 "{变量名}
[xf@xuexi ~]$ VAR1=mysql
[xf@xuexi ~]$ echo $VAR1
mysql
[xf@xuexi ~]$ echo ${VAR1}db.log
mysqldb.log
[xf@xuexi ~]$ echo "$VAR1"db.log
mysqldb.log
[xf@xuexi ~]$ echo $VAR1db.log    //如果直接写有可能会输出错误内容
.log
  1. 设置只读变量
    在变量的前面 添加readonly把变量定义为一个只能读取的变量,无法进行修改。
name='leeguo'
readonly name
name='idealcitier'
echo ${name}
#output
test.sh: 15: test.sh: name: is read only
  1. 删除变量unset
    使用unset定义一个变量,变量的内容就被删除了。
name='idealcitier'
unset name
echo ${name}

二、 分类

分别为环境变量,用户自定义变量,.位置参数变量, .预定义变量;

  1. 环境变量:这种变量中主要保存的是与系统操作环境相关的数据,通常都是大写字母
[xf@xuexi ~]$ env    //当前用户的环境变量,系统设置好的,不需要手动设置,可以拿来直接用
XDG_VTNR=1
SSH_AGENT_PID=8320
XDG_SESSION_ID=1
HOSTNAME=xuexi
IMSETTINGS_INTEGRATE_DESKTOP=yes
VTE_VERSION=5202
TERM=xterm-256color
SHELL=/bin/bash
XDG_MENU_PREFIX=gnome-
HISTSIZE=1000
  1. 用户自定义变量
[xf@xuexi ~]$ VAR2=123
[xf@xuexi ~]$ echo $VAR2
123
  1. 位置参数变量:这种变量主要用来向脚本当中传递参数或数据,变量名不能自定义,作用是固定的。 0 获 取 当 前 s h e l l 脚 本 文 件 的 文 件 名 , 0获取当前shell脚本文件的文件名, 0shelln($1,$2, 3.... ) 获 取 第 n 个 参 数 , n 大 于 9 时 使 用 3....)获取第n个参数,n大于9时使用 3....nn9使{n}(${10})。
[xf@xuexi ~]$ cat a.sh
#!/bin/bash
echo "$0"
echo "$1"
echo "$3"
[xf@xuexi ~]$ sh a.sh 1 2 3
a.sh
1
3
[xf@xuexi ~]$ sh /home/xf/a.sh 1 2 3
/home/xf/a.sh
1
3
[xf@xuexi ~]$ sh a.sh 1 3 2
a.sh
1
2
  1. 预定义变量
    是bash中已经定义好的变量,变量名不能自定义,作用也是固定的
    $#是传递到脚本的参数的个数
    $*是以一个字符串显示所有向脚本传递的参数
    $@传递给脚本或函数的所有参数,每个参数是一个对象
    $$是当前进程的进程号PID
    $?显示上一条命令的退出状态,0表示没有错误,其他都有错误
    $!是后台运行的最后一个进程的进程号PID

》》》博主长期更新学习心得,推荐点赞关注!!!
》》》若有错误之处,请在评论区留言,谢谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值