Shell脚本中的变量

目录

一、理论部分

 1.1shell变量的作用、类型

二、实践部分

2.1自定义变量

 2.2特殊的shell变量

三、总结


本章结构

一、理论部分

 1.1shell变量的作用、类型

v变量的作用

§为灵活管理Linux系统提供特定参数,有两层意思:

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

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

 v变量的类型

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

§环境变量:由系统维护,用于设置工作环境

§位置变量:通过命令行给脚本程序传递参数

§预定义变量:Bash中内置的一类变量,不能直接修改

二、实践部分

2.1自定义变量

v定义一个新的变量

   §格式:变量名=变量值

   §变量名以字母或下划线开头,区分大小写,建议全大写

v查看变量的值

   §格式:echo  $变量名

[root@localhost ~]# Product=PPT
[root@localhost ~]# Version=3.0
[root@localhost ~]# echo $Product
PPT
[root@localhost ~]# echo $Product $Version
PPT 3.0

 v赋值时可以使用引号,它们将有如下意义:

§双引号:允许通过$符号引用其他变量值

如NEW=“WORD$Version”,将引用上面的变量,结果是WORD3.0

§单引号:禁止引用其他变量值,$视为普通字符

当需要用$符号时。如CASH=‘US$IS’

§反撇号:命令替换,提取命令执行后的输出结果

EX=`pgrep –U root | wc –l`,把命令结果赋给EX

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

§ 格式: read  [-p  提示信息”]  变量名

read  –p “请输入循环次数:” CISHU

[root@localhost test]# echo $NEW
[root@localhost test]#echo $CASH
[root@localhost test]#EX='PGREP -U root | wc -l'
pgrep:invalid user name:root
[root@localhost test]#read -p "请输入循环次数: " CISHU
请输入循环次数:1(这个自定义)

v设置变量的作用范围

§格式1export   变量名 ... (已有的变量)

§格式2export  变量名=变量值  ...(新定义的变量)

§—— 两种格式可以混合使用

[root@localhost ~]# echo "$Product $Version"
PPT 3.0
[root@localhost ~]# export Product  Version
[root@localhost ~]# bash (进入当前工作区的一个子环境,相当于副本)
[root@localhost ~]# echo "$Product  $Version"
PPT  3.0
[root@localhost ~]# echo “$EX  $CISHU“ (它们则没结果)

[root@localhost ~]# exit (回到主工作区)
[root@localhost ~]# echo “$EX  $CISHU“

v 整数变量的运算 ( 赋值时必须用反撇号 `
§ 格式: expr  变量 1   运算符  变量 2  [ 运算符 变量 3] ...
v 常用运算符
§ 加法运算: +
§ 减法运算: -
§ 乘法运算: \ *
§ 除法运算: /
§ 求模(取余)运算: %
:echo  $EX  $CISH

  AK=`expr $EX + $CISHU` (假定read 时输入15)

  echo $AK

AK=`expr $EX - $CISHU`

    echo $AK

AK=`expr $EX \* $CISHU`

    echo $AK

AK=`expr $EX / $CISHU`

    echo $AK

AK=`expr $EX % $CISHU`

       echo $AK

 2.2特殊的shell变量

 v环境变量

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

§配置文件: /etc/profile~/.bash_profile

v常见的环境变量:

[root@localhost ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# PATH=“$PATH:/root” (添加一下新路径/root)
[root@localhost ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root

 v位置变量

 §表示为 $nn1~9之间的数字,超过9则用${n}

[root@localhost ~]# ./myprog.sh   one   two   three   four   five   six
[root@localhost ~]# cat myprog.sh

[root@localhost ~]# sh myprog.sh {a..z}

 

v 预定义变量
[root@localhost ~]# cat mybak.sh

[root@localhost ~]# sh mybak.sh  /etc/passwd  /etc/shadow 

[root@localhost ~]# ls *.tgz

三、总结

Shell变量是在Shell脚本中用来存储数据的一种方式,可以用来保存命令的输出、用户输入的数据或者其他需要在脚本中多次使用的值。学习Shell变量可以帮助我们更好地管理和操作数据,提高脚本的灵活性和可维护性。

在学习Shell变量时,我发现以下几点是特别重要的:

1. 变量的定义和赋值:在Shell脚本中,可以使用等号(=)来给变量赋值,但是等号两边不能有空格。变量名和赋值之间也不能有空格。例如:name="John"。

2. 变量的使用:在使用变量时,需要在变量名前加上美元符号($),以获取变量的值。例如:echo $name。

3. 特殊变量:在Shell脚本中,有一些特殊的变量,如$0表示脚本的名称,$1、$2等表示传递给脚本的参数,$#表示参数的个数,$?表示上一个命令的退出状态等。

4. 只读变量:可以使用readonly命令来将变量设置为只读,这样就不能再对其进行修改。

5. 删除变量:可以使用unset命令来删除一个变量。

通过学习Shell变量,我对Shell脚本的编写和使用有了更深入的理解,也能更灵活地处理数据和操作。在实际的编程中,合理地运用Shell变量可以提高效率和代码的可读性,是一个非常重要的知识点。

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值