Shell--变量和引用

1.总结变量的类型及含义?

2.实现课堂案例计算长方形面积?(6种方式)

3.定义变量url=https://blog.csdn.net/weixin_45029822/article/details/103568815

(通过多种方法实现)

        1)截取网站访问的协议

        2)截取网站访问账号信息
 


一、总结变量的类型及含义? 

  1.自定义变量:

(1)、定义变量:   
                变量名=变量值

     注:变量名必须以字母或下划线开头,区分大小写

   (2)、引用变量:
                $变量名或$(变量名)

   (3) 、查看变量
                 echo $变量名

   (4)、取消变量
                unset 变量名

   (5)、作用范围
                仅在当前shll中有效

num=1
name=lisi

2.环境变量

 (1)、bash的初始化文件
             /etc/profile:存放一些全局变量

             ~/.bash_profile:每个用户都可以使用该文件输入专用于自己使用的shell信息

             ~/.bashrc:该文件包含专用于你的bash shell的bash信息

             /etc/bashrc:为每一个运行bash shell的用户执行此文件

  (2)、bash内置环境变量
               PATH:命令的搜索路径,以冒号作为分隔符

               HOME:用户的家目录的路径,是cd命令的默认参数

               COLUMNS:命令行编辑模式下可使用命令的长度

               HISTFILE:命令历史的文件路径

               HISTFILESIZE:命令历史中包含的最大行数

               LOGNAME:当前用户的名字

               $HELL:当前使用的shell

               PWD:当前的工作目录

   (3)、范围
                在所有shell中生效,但是重启ssh连接将会重置(即重新按照定义的变量文件加载

export num=1
export name=zhangsan

3.位置变量

    在shell脚本中应有变量,接受实参,这类变量的名称很特别,分别为1,2,3...这类变量称为位置变量,位置参数1存放在位置变量1中,位置参数2存放在位置变量2中,...来访问

$1 $2 $3 $4 $5 $6 $7 $8 $9 $(10)

4.预定义变量

$0      脚本名      echo "显示脚本文件名" $0      ||    echo "显示脚本文件名"  basename $0dirname
 
$*    所有的参数
 
$@    所有的参数
 
$#    参数的个数
 
$$    当前进程的PID
 
$!    上一个后台进程的PID
 
$?    上一个命令的返回值 0表示成功 

5.只读变量


   将变量配置成为 readonly 类型,该变量不可被更改内容,也不能 unset   -               

(1)、定义方法:
             方法一:  readonly [-fap] [变量定义]  -f 定义只读函数 -a 定义只读数组变量 -p 显示系统中全部的变量列表

              方法二:  declare – r 变量定义

(2)、取消变量:
              unset

              选项: -f 取消的是函数

                          -v 取消的是变量

                          如果没有指选项,首先尝试取消变量,如果失败尝试取消函数。

二、实现课堂案例计算长方形面积?(6种方式)
 

1.使用变量

[root@localhost ~]# vim 2.sh
 
#!/bin/bash
##############################################################
# File Name: 2.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:38:18
# Description:
##############################################################
 
l=10
w=5
area=$(($l * $w))
echo "长为$l,宽为$w的长方形面积为$area"
 
[root@localhost ~]# bash 2.sh
长为10,宽为5的长方形面积为50

 2.直接计算

[root@localhost ~]# vim 3.sh
 
#!/bin/bash
##############################################################
# File Name: 3.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:40:59
# Description:
##############################################################
echo "长为 10,宽为 5的长方形面积为 $((10 * 5)) "
 
 
[root@localhost ~]# bash 3.sh
长为 10,宽为 5的长方形面积为 50  

  3.用bc命令

[root@localhost ~]# vim 4.sh
 
#!/bin/bash
##############################################################
# File Name: 4.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:42:53
# Description:
##############################################################
echo "scale=2;10 * 5 " | bc
 
[root@localhost ~]# bash 4.sh
50
[root@localhost ~]# 

  4.用awk命令

[root@localhost ~]# vim 5.sh
 
#!/bin/bash
##############################################################
# File Name: 5.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:45:20
# Description:
##############################################################
echo "10 5" | awk '{print $i * $2}'
 
[root@localhost ~]# bash 5.sh
50
[root@localhost ~]# 

  5.用expr命令

[root@localhost ~]# vim 6.sh
 
#!/bin/bash
##############################################################
# File Name: 6.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:47:26
# Description:
##############################################################
expr 10 \* 5
 
[root@localhost ~]# bash 6.sh
50

   6.用let命令

[root@localhost ~]# vim 7.sh
 
#!/bin/bash
##############################################################
# File Name: 7.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:48:19
# Description:
##############################################################
let area=10*5
echo "长为 10,宽为 5的长方形面积为 $area"
 
[root@localhost ~]# bash 7.sh
长为 10,宽为 5的长方形面积为 50

三、定义变量url=https://blog.csdn.net/weixin_45029822/article/details/103568815(通过多种方法实现)

 1.截取网站访问的协议

[root@localhost ~]# vim url.sh
 
#!/bin/bash
##############################################################
# File Name: url.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:53:09
# Description:
##############################################################
url=https://blog.csdn.net/weixin_45029822/article/details/103568815
protocol=$(echo $url | cut -d ":" -f1)
echo $protocol
 
[root@localhost ~]# bash url.sh
https

   2.截取网站访问账号信息

[root@localhost ~]# vim url.sh
 
#!/bin/bash
##############################################################
# File Name: url.sh
# Version: V1.0
# Author: xx
# Email: xx@163.com
# Organization: http://www.xx.com/xx/
# Created Time : 2023-05-21 10:53:09
# Description:
##############################################################
url=https://blog.csdn.net/weixin_45029822/article/details/103568815
protocol=$(echo $url | cut -d ":" -f1)
echo $protocol
username=$(echo $url | awk -F'[/]' '{print $(NF-3)}')
echo $username
 
[root@localhost ~]# bash url.sh
https

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
shell脚本中,-f和-z是两个常用的条件判断语句。 -f用于判断文件是否存在。如果指定的文件存在,则条件为真;如果文件不存在,则条件为假。例如,如果我们有一个文件/etc/sysconfig/network,并且我们想要在脚本中检查该文件是否存在,可以使用以下条件判断语句: ``` if [ -f /etc/sysconfig/network ]; then # 在这里写你的代码 fi ``` 这个条件判断语句会在/etc/sysconfig/network文件存在时执行其中的代码。 -z用于判断字符串是否为空。如果指定的字符串为空,则条件为真;如果字符串不为空,则条件为假。例如,如果我们有一个变量$HOSTNAME,并且我们想要在脚本中检查该变量是否为空,可以使用以下条件判断语句: ``` if [ -z "$HOSTNAME" ]; then # 在这里写你的代码 fi ``` 这个条件判断语句会在$HOSTNAME为空时执行其中的代码。 综合上述两个条件判断,如果我们想要检查$HOSTNAME是否为空或者为"(none)",可以使用以下条件判断语句: ``` if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then # 在这里写你的代码 fi ``` 这个条件判断语句会在$HOSTNAME为空或者为"(none)"时执行其中的代码。 需要注意的是,在条件判断语句中,`-o`表示逻辑或(or),`-a`表示逻辑与(and)。在这个例子中,我们使用了逻辑或(-o)来判断$HOSTNAME是否为空或者为"(none)"。如果要使用逻辑与,可以使用`-a`来替代`-o`。 另外,引用、和分别提供了关于如何使用这些条件判断语句的示例代码。通过这些示例代码,你可以更好地理解如何在实际的shell脚本中应用这些条件判断语句。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值