5. Bash的运算符

5.1 数值运算与运算符

5.1.1 declare 声明变量类型:#declare [+/-] [选项] 变量名

选项

说明

-

给变量设定类型属性

+

取消变量的类型属性

-i

将变量声明为整数型(integer)

-x

将变量声明为环境变量

-p

显示变量被声明的类型。

(1)数值运算——方法1:

#aa=

#bb=

#declare –i cc=$aa+$bb  //将cc声明为整型

(2)数值运算——方法2,使用expr或let数值运算工具。

  #dd=$(expr $aa + $bb) (注意“+”两侧必须有空格,其中的“$()”表示获得小括号内系统命令执行的结果)

(3)数值运算——方法3:$((运算式))”或“$[运算式]” (注意是$()的括号起的部分表示系统命令,而$(())双小括号表示数值运算!)

【编程实验】变量声明和数值运算

#!/bin/bash

aa=
bb= #显示变量aa的类型
declare -p aa #将aa设为环境变量
export aa #再次显示变量aa的类型
declare -p aa #数值运算:方法1
declare -i cc=$aa+$bb #数值运算:方法2
dd=$(expr $aa + $bb) #数值运算:方法3
ee=$(($aa+$bb))
ff=$[$aa+$bb] echo "cc=$cc"
echo "dd=$dd"
echo "ee=$ee"
echo "ff=$ff"

5.1.2 运算符

优先级

运算符

说明

13

-,+

单目负,单目正

12

!,~

逻辑非、按位取反或补码

11

*,/,%

乘、除、取模

10

+,-

加、减

9

<<,>>

按位左移、按位右移

8

< =, > =,<,>

小于或等于、大于或等于、小于、大于

7

==,!=

等于、不等于

6

&

按位与

5

^

按位异或

4

按位或

3

&&

逻辑与

2

||

逻辑或

1

=,+=,-=,*=,/=,%=,&=,^=,|=,<<=,>>=

赋值、运算且赋值

5.2 变量测试与内容替换

变量置换方式

变量y没有设置

变量y为空值

变量y设置值

x=${y-新值}

x=新值

x为空

x=$y

x=${y:-新值}

x=新值

x=新值

x=$y

x=${y+新值}

x为空

x=新值

x=新值

x=${y:+新值}

x为空

x为空

x=新值

x=${y=新值}

x=新值

y=新值

x为空

y=值不变

x=$y

y值不变

x=${y:=新值}

x=新值

y=新值

x=新值

y=值不变

x=$y

y值不变

x=${y?新值}

新值输出到标准错误输出(就是屏幕)

x为空

x=$y

x=${y:?新值}

新值输出到标准错误输出

新值输出到标准错误输出

x=$y

(1)可通过x的值来判断y是否被设置或为空值

(2)测试x=${y-新值}

#unset y   //删除变量y

#x=${y-new}

#echo $x  //输出new,因为变量y不存在,所以x=new

6. 环境变量配置文件

6.1 配置文件

(1)source命令:强制让配置文件生效

  #source 配置文件,或

  #. 配置文件(注意,“.”与配置文件之间有空格

(2)环境变量配置文件

  环境变量配置文件主要是定义对系统的操作环境生效的系统默认环境变量比如PATH、HINSTSIZE、PS1、HOSTNAME等默认环境变量

6.2 配置文件的作用

(1)配置文件的调用顺序

(2)主要的配置文件

文件

作用

备注

/etc/profile

①USER变量

②LOGMANAE变量

③MAIL变量

④PATH变量

⑤HOSTNAME、HISTSIZE变量

⑥umask

⑦调用/etc/profile.d/*.sh文件

对所有用户生效

/etc/profile.d/*.sh

①/etc/profile.d/目录下存放一些与颜色语言等相关的配置文件。

②调用/etc/sysconfig/i18n配置文件(语言环境,如UTF-8)

/etc/bashrc

①PS1变量(登录提示符)

②umask

③PATH变量

④调用/etc/profile.d/*.sh文件

~/.bash_profile

①调用了~/.bashrc文件

②在PATH变量后面加入了:“$HOME/bin”这个目录。

对当前用户生效,放于家目录并且为隐藏文件。

~/.bashrc

①定义默认别名

②调用/etc/bashrc文件

6.3 其他配置文件和登录信息

(1)注销时生效的环境变量配置文件:~/.bash_logout

(2)历史命令配置文件:~/bash_history

(3)Shell登录信息

  ①本地终端欢迎信息:/etc/issue(只能本地登录才能看到这些信息)

转义符

作用

\d

显示当前系统日期

\s

显示操作系统名称

\l

显录登录的终端号,这个比较常用

\m

显示硬件体系结构,如i386、i686等。

\n

显示主机名

\o

显示域名

\r

显示内核版本

\t

显示当前系统时间

\u

显示当前登录用户的序列号

  ②远程终端欢迎信息:/etc/issue.net

    A.转义符在/etc/issue.net文件中不能使用

    B.是否显示此欢迎信息,由ssh的配置文件/etc/ssh/sshd_config决定,加入“Banner /etc/issue.net”行才能显示(要重启SSH服务,#service sshd restart)

  ③登录后欢迎信息:/etc/motd,不管是本地登录还是远程登录,都可以显示此欢迎信息。但他是登录后才会显示的信息,不像前两者是登录之前显示的信息。

第9章 Shell基础(4)_Bash的运算符及环境变量配置文件的更多相关文章

  1. Shell编程之运算符和环境变量配置文件

    一.shell运算符:    declare命令:         declare    -i 变量名     #声明变量        eg. movie[o]=dzp     #定义数组      ...

  2. 第9章 Shell基础(2)_Bash基本功能

    3. Bash的基本功能 3.1 历史命令与命令补全 (1)历史命令:#history [选项] [历史命令保存文件] ①选项:-c:清空历史命令: -w:把缓存中的历史命令写入文件~/.bash_h ...

  3. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  4. Linux Shell基础 环境变量配置文件

    source命令:使环境变量配置文件强制生效 source 命令会强制执行脚本中的全部命令,而忽略脚本文件的权限.该命令主要用于让重新配置的环境变量配置文件强制生效.source 命令格式如下: [r ...

  5. 『忘了再学』Shell基础 — 22、主要的环境变量配置文件说明

    目录 1.source命令 2.Linux系统中环境变量配置文件 (1)登录时生效的环境变量配置文件 (2)/etc/profile环境变量配置文件 (3)/etc/profile.d/*.sh环境变 ...

  6. 『忘了再学』Shell基础 — 23、其他环境变量配置文件

    目录 1.注销时生效的环境变量配置文件 2.其他配置文件 3.Shell登录信息相关文件 (1)/etc/issue文件说明 (2)/etc/issue.net文件说明 (3)/etc/motd文件说 ...

  7. Shell学习笔记 - 环境变量配置文件(转)

    一.source命令 功能:在当前bash环境下读取并执行配置文件中的命令 1. 命令格式 source 配置文件  或  . 配置文件 2. 命令示例 [root@localhost ~]# sou ...

  8. Shell学习笔记 - 环境变量配置文件

    一.source命令 功能:在当前bash环境下读取并执行配置文件中的命令 1. 命令格式 source 配置文件  或  . 配置文件 2. 命令示例 [root@localhost ~]# sou ...

  9. Linux学习——shell编程之环境变量配置文件

    小白学习,在学习中总结! shell编程之环境变量配置文件 一:环境变量配置文件 1 shell编程之环境变量配置 变量类型: 用户自定义变量(本地变量) 环境变量 :定义每个用户的操作环境,如pat ...

随机推荐

  1. android黑科技——完美解决界面逻辑的数据框架DataBinding(最新)的使用(二)

    昨天我们一起学习了dataBinding的基础用法,我想你可能还停留在它只是不用再findViewById,其实不然,今天我们就来扩展延伸,看看这个框架到底有什么魔力让谷歌官方大力推崇.这里还没看昨天 ...

  2. TFS工作项数据统计及相关数据库结构分析

    今天为客户的质量管理部门人员提供TFS咨询过程中,客户的质量管理专家基于TFS提出了一个比较棘手的数据统计需求.需求是这样,客户的数十个软件项目通过质量管理部按照年度版本计划进行软件产品系统的发布,因 ...

  3. [协议]ICMP协议剖析

    1.ICMP简介 ICMP全名为(INTERNET CONTROL MESSAGE PROTOCOL)网络控制消息协议. ICMP的协议号为1. ICMP报文就像是IP报文的小弟,总顶着IP报文的名头 ...

  4. 探究负边距(negative margin)原理

    W3C规范在介绍margin时有这样一句话: Negative values for margin properties are allowed, but there may be implement ...

  5. CLR和.Net对象生存周期

    标签:GC .Net C# CLR 前言 1. 基础概念明晰 * 1.1 公告语言运行时 * 1.2 托管模块 * 1.3 对象和类型 * 1.4 垃圾回收器 2. 垃圾回收模型 * 2.1 为什么需 ...

  6. 【C#公共帮助类】WinRarHelper帮助类,实现文件或文件夹压缩和解压,实战干货

    关于本文档的说明 本文档使用WinRAR方式来进行简单的压缩和解压动作,纯干货,实际项目这种压缩方式用的少一点,一般我会使用第三方的压缩dll来实现,就如同我上一个压缩类博客,压缩的是zip文件htt ...

  7. 笔记:xubuntu下如何让系统默认使用nvidia显卡,而不是intel集显

    经反复折腾,得到如下的解决方法: prime-select nvidia 简单吧,但关系是如果让它开机自动执行一次. 反复折腾了xinitrc ,~/.xinitrc , /etc/rc.local ...

  8. IDEA 中生成 MyBatis 逆向工程实践

    IDEA 逆向 MyBatis 工程时,不像支持 Hibernate 那样有自带插件,需要集成第三方的 MyBatis Generator. MyBatis Generator的详细介绍 http:/ ...

  9. 锐捷linux客户端常用命令(主要用来连接校园网或公司局域网)

     锐捷访问校园网,.sh脚本文件rjsu*.sh-u 用户名-P 密码-S 参数1保存密码参数0不保存密码   其实:  直接使用md5认证方式输入用户名密码并且配置好ip之后,重新打开网卡即可有一定 ...

  10. IT基础架构规划方案一(网络系统规划)

    背景                   某集团经过多年的经营,公司业务和规模在不断发展,公司管理层和IT部门也认识到通过信息化手段可以更好地支撑公司业务运营.提高企业生产和管理效率.同时随着新建办公 ...