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. Ninesky源代码从Codeplex迁移到开源中国

    原来Ninesky代码一直发在Codeplex.com上,最近两三个星期了代码一直迁入不上去,网站访问也经常出错. 所以把代码放到开源中国去了,项目地址https://git.oschina.net/ ...

  2. Hawk 2. 软件界面介绍

    2. 软件界面介绍 1. 基本组件 Hawk采用类似Visual Studio和Eclipse的Dock风格,所有的组件都可以悬停和切换.包括以下核心组件: 左上角区域:主要工作区,任务管理. 下方: ...

  3. 使用VS Code从零开始开发调试.NET Core 1.0

    使用VS Code 从零开始开发调试.NET Core 1.0. .NET Core 是一个开源的.跨平台的 .NET 实现. VS Code 全称是 Visual Studio Code,Visua ...

  4. VS2010 VS2012 VS2013 VS2015启动调试时老是提示正在下载公共符号

    VS2010 VS2012 VS2013 VS2015启动调试时老是提示正在下载公共符号,下载一些.dll文件,点取消后也能继续调试,但特别慢.解决方法:工具-选项,或者调试-选项和设置,将调试下的& ...

  5. C# - 网络编程 之 Socket

    命名空间 using System.Net; using System.Net.Socket; Socket类 初始化 public socket (AddressFamily addressFami ...

  6. html5+jqueryMobile编写App推广注册页

    html5+jqueryMobile的组合可以直接开发web版的app,所以用到我当前app中的推广注册页的编写是很恰当的,其实只要你熟悉html4+jquery的组合开发,那么html5+jquer ...

  7. Flexible 弹性盒子模型之flex

    实例 让所有弹性盒模型对象的子元素都有相同的长度,忽略它们内部的内容: #main div { flex:1; } 复制 效果预览 浏览器支持 表格中的数字表示支持该属性的第一个浏览器的版本号. 紧跟 ...

  8. 8个超棒的HTML5网站设计欣赏

    我们听到了很多关于HTML5的新闻和技术动向,一个又一个的新的东西不停的出现,那么最近HTML5的技术应用又如何呢?HTML5又和CSS及其Javascript如何一起改变我们的网站设计和实现的呢? ...

  9. 乱码引起的CSS失效原理,解决技巧。

    由于一个中文是两个字符组成,在编码不一致的情况下会引发字符的“重新”组合,(半个汉字的编码字符与后面的字符组合生成新的“文字”)引发原本的结束符合“变异”,从而导致找不到结束符号,使得后面的CSS就会 ...

  10. iOS之UI组件整理

    作者:神兽gcc 授权本站转载. 最近把iOS里的UI组件重新整理了一遍,简单来看一下常用的组件以及它们的实现.其实现在这些组件都可以通过Storyboard很快的生成,只是要向这些组件能够变得生动起 ...