Shell编程基础(二)变量与正则表达式

Shell中引号的使用

        Shell中支持的引号:””(双引号)、’’(单引号)、··(反引号)

单引号与双引号

        作用:将字符串作为一个整体。

        如我们创建文件时:

#不使用引号时,将创建3个文件

[root@localhost test]# touch a b c

[root@localhost test]# ls -l

total 0

-rw-r--r-- 1 root root 0 Aug 31 09:57 a

-rw-r--r-- 1 root root 0 Aug 31 09:57 b

-rw-r--r-- 1 root root 0 Aug 31 09:57 c

#使用引号则将a b c作为一个文件的文件名

[root@localhost test]# touch "a b c"

[root@localhost test]# ls -l

total 0

-rw-r--r-- 1 root root 0 Aug 31 09:57 a

-rw-r--r-- 1 root root 0 Aug 31 09:57 a b c

-rw-r--r-- 1 root root 0 Aug 31 09:57 b

-rw-r--r-- 1 root root 0 Aug 31 09:57 c

        双引号与单引号的区别:

        单引号可以屏蔽特殊符号,将特殊符号的特殊含义屏蔽,转化为字符表面的含义,不能解析变量。

# ‘#’号在Shell中为单行注释的标志,直接echo输出则#及后面的内容不会被执行

[root@localhost test]# echo #lsk



[root@localhost test]# echo "#ls"

#ls

[root@localhost test]# echo '#ls'

#ls

# 定义变量,直接echo输出及使用双引号,变量将被解析,使用单引号不能解析

[root@localhost test]# test="Hello World"

[root@localhost test]# echo $test

Hello World

[root@localhost test]# echo "$test"

Hello World

[root@localhost test]# echo '$test'

$test

# 使用\将$符进行转义,$转移为普通字符

[root@localhost test]# echo "\$test"

$test

[root@localhost test]# echo \$test

$test

反引号

        反引号是一个命令替换符号,它可以使用命令的输出结果替代命令。

# 使用反引号将date命令的输出结果作为备份文件名的一部分

[root@localhost test]# tar -zcf log-`date +"%Y-%d-%m"`.tar.gz /var/log/

tar: Removing leading `/' from member names

[root@localhost test]# ls

a  a b c  b  c  log-2021-31-08.tar.gz

# 使用反引号将统计登录系统账户数作为值赋给变量

[root@localhost test]# userTotal=`who | wc -l`

[root@localhost test]# echo $userTotal

2

 

$()组合符号与反引号的功能相同

[root@localhost test]# echo "当前系统账户登录数量为:$(who | wc -l)"

当前系统账户登录数量为:2

[root@localhost test]# echo "当前系统账户登录数量为:$(who | wc -l)"

当前系统账户登录数量为:2

[root@localhost test]# ping -c2 $(hostname)

PING localhost (127.0.0.1) 56(84) bytes of data.

64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.015 ms

64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.039 ms



--- localhost ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1002ms

rtt min/avg/max/mdev = 0.015/0.027/0.039/0.012 ms

 

Shell变量

Shell中变量的类型有:

  1. 自定义变量:用户自主设置的变量
  2. 环境变量:变量名通常大写,有操作系统维护
  3. 位置变量:bash内置变量,存储脚本执行时的参数
  4. 预定义变量:bash内置变量,可以调用但是不能修改

自定义变量        

        用户自定义变量时,变量名的规则:变量名仅可以使用字母数字下划线组合,但是不能以数字开头。在实际定义时最好使用比较容易理解的单词或拼音,切记不要使用随意的字符作为变量名,没有规律的变量名会让脚本的可阅读性变得极差。

定义变量格式:

变量名=变量值

取消变量:

unset 变量名

注意:=号两边不能有空格,不要使用关键字作为变量名,如:ls、cd等。

# 定义变量时=号两边有空格时将报错

[root@localhost test]# var ="value"

-bash: var: command not found

[root@localhost test]# var= "value"

-bash: value: command not found

[root@localhost test]# var = "value"

-bash: var: command not found

# 自定义变量

[root@localhost test]# var="value"

# 输出变量

[root@localhost test]# echo $var

value

# 取消变量

[root@localhost test]# unset var

[root@localhost test]# echo $var



[root@localhost test]#

 

当输出变量时,变量名后面直接跟其他字母、数字或下划线时,需要使用{}将变量名括起来。

[root@localhost test]# money=999

[root@localhost test]# echo $money

999

#变量名后直接跟字母将无任何输出,moneyRMB将作为整个变量名,未定义

[root@localhost test]# echo $moneyRMB



# 使用{}分隔变量名及其他字符

[root@localhost test]# echo ${money}RMB

999RMB

[root@localhost test]# echo $money_RMB



[root@localhost test]# echo $money12RMB



[root@localhost test]# echo ${money}12RMB

99912RMB

[root@localhost test]# echo ${money}_RMB

999_RMB

[root@localhost test]# echo $money:RMB

999:RMB

[root@localhost test]# echo $money-RMB

999-RMB

 

环境变量

环境变量一般存储在/etc/profile或~/.bash_profile中,可以使用命令env查看所有环境变量。

 

常用的环境变量有:

  1. PATH:系统环境变量路径
  2. PWD:用户当前工作目录
  3. USER:当前登录系统的用户名
  4. UID:当前账号的UID
  5. HOME:当前用户的家目录
  6. SHELL:当前用户的SHEEL解释器
  7. RANDOM:返回0~32767之间的随机整数

位置变量

位置变量是存储脚本执行时的参数,使用$n表示,n为整数序列,n大于9是整数需使用{}号分隔,如:$1、$2...${11}、${12}...

[root@localhost test]# vim test.sh

#!/bin/bash

# 接收并输出位置变量



echo $1

echo $2

echo $2

[root@localhost test]# chmod +x test.sh

[root@localhost test]# ./test.sh 11 22 33

11

22

22

预定义变量

预定义变量用来保存脚本程序的执行信息。可以直接使用,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Linux与Unix Shell编程指南》是一本比较经典的技术书籍,其内容涵盖了Linux和Unix系统下的Shell编程Shell是一种命令行解释器,它能够让用户通过输入命令来与操作系统进行交互。 该书的主要内容包括介绍了Shell编程的基本概念、语法、常用命令和技巧。通过讲解Shell的语法和基本命令,读者可以提高自己 Shell 编程的能力,并学会如何编写脚本来完成一些自动化的操作。此外,书中还介绍了一些高级的 Shell 编程技巧,例如使用正则表达式、函数编程、流程控制等。 由于Linux和Unix系统广泛应用于服务器和计算机集群等领域,因此Shell编程技能也成为了很多IT从业者必备的技能之一。掌握Shell编程不仅可以提高工作效率,还能提高对系统的了解和理解,对于系统管理员、开发人员和软件测试人员等IT从业者来说都是非常重要的。 总之,《Linux与Unix Shell编程指南》对于想要进一步学习Linux和Unix系统、提高Shell编程技能的读者来说,是一本非常有价值的技术书籍。 ### 回答2: Linux与Unix Shell编程指南是一本非常著名的书籍,主要介绍了Shell编程基础知识和实际应用技巧。Shell是Linux和Unix系统中的一种命令行解释器,也是一种编程语言,它可以通过脚本编写来自动化执行一些常用的任务。 本书的作者是Shih-Wei Yuan和Mark G. Sobell,共有25章,从介绍Shell的概念和历史开始,详细阐述Shell编程的语法、变量、流程控制、函数、调试等方面的知识。 其中,重点涵盖了Shell脚本的结构和用途,Shell中的字符串操作和正则表达式Shell的内建命令和外部命令的使用,以及Shell如何处理变量和环境。 此外,该书还介绍了一些实际应用案例,例如Shell脚本编写的服务监控、日志分析和一些常用的工具应用等方面。这些例子丰富了读者的经验和实践能力。 总之,Linux与Unix Shell编程指南是一本深入浅出、通俗易懂的书籍,对Shell编程感兴趣的读者可以通过学习此书来快速上手,提高自己的工作效率。无论是在日常的运维管理、软件开发还是数据处理等方面,Shell都是一种非常强大的工具,能够为用户带来很多便利。 ### 回答3: Linux与Unix Shell编程指南是一本经典的编程入门书籍,通过简单易懂的方式介绍了Shell脚本语言的基础知识以及常用的编程技巧。本书内容涵盖Shell基本语法、变量、流程控制、函数、正则表达式等方面,深入浅出地带领读者进入Shell编程的世界。 Shell编程在Unix/Linux系统中有着极其重要的应用,通过编写Shell程序可以轻松地完成常规的文本文件处理、系统管理及自动化化脚本等任务,提高工作效率,减少人为错误。本书通过大量的实例演示Shell编程的各种应用场景,让读者感受到编程的乐趣。 构造复杂的Shell程序需要掌握逻辑和算法,本书深入理解了各种算法和数据结构,并详细解释了如何使用Shell进行实现。此以外,本书通过对Shell开发环境、调试工具以及面向对象编程等方面的阐述,让读者通过本书学习到Shell开发的全过程,并顺利地实现编程目标。 总之,本书是一本适合初学者入门的Shell编程指南,也是一本深入学习Shell编程的经验分享之作。如果您是一名初学Shell编程的开发者或管理员,本书将是您不可错过的好书。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值