Linux Shell编程(12)——操作符
赋值
变量赋值
初始化或改变一个变量的值
=
通用的变量赋值操作符,可以用于数值和字符串的赋值
1 var=27
2 category=minerals # "="字符后面不能加空白字符.
不要把"="赋值操作符和=测试操作符搞混了。
# = 用于测试操作符
if [ "$string1" = "$string2" ]
# if [ "X$string1" = "X$string2" ] 会更安全,
# 它为了防止其中有一个字符串为空时产生错误信息.
# (增加的"X"字符可以互相抵消.)
then
command
fi
计算操作符
+加
-减
*乘
/除
**求幂
# Bash在版本2.02引入了"**"求幂操作符. let "z=5**3"
echo "z = $z" # z = 125
%求模(它返回整数整除一个数后的余数)
bash$ expr 5 % 3
2 5/3 = 1 余 2
+="加-等(plus-equal)" (把原变量值增加一个常量并重新赋值给变量)
let "var += 5"会使变量var值加了5并把值赋给var.
-="(减-等)minus-equal" (把原变量值减少一个常量并重新赋值给变量)
*="(乘-等)times-equal" (把原变量值乘上一个常量并重新赋值给变量)
let "var *= 4" 使变量var的值乘上4并把值赋给var.
/="(除-等)slash-equal" (把原变量值除以一个常量并重新赋值给变量)
%="(模-等)mod-equal" (把原变量值除以一个常量整除(译者注:即取模)并重新赋余数的值给变量)
计算操作符常常出现在expr或let命令的表达式中.
位操作符. 位操作符很少在脚本中使用。他们主要用于操作和测试从端口或sockets中读到的数据。“位运算”更多地用于编译型的语言,比如说C和C++,它们运行起来快地像飞。
位操作符
<<位左移(每移一位相当乘以2)
<<="位左移赋值"
let "var <<= 2" 结果使var的二进制值左移了二位(相当于乘以4)
>>位右移(每移一位相当除以2)
>>="位右移赋值"(和<<=相反)
&位与
&="位于赋值"
|位或
|="位或赋值"
~位反
!位非
^位或
^="位或赋值"
逻辑操作符
&&逻辑与
if [ $condition1 ] && [ $condition2 ]
# 等同于: if [ $condition1 -a $condition2 ]
# 如果condition1和condition2都为真则返回真... if [[ $condition1 && $condition2 ]] # Also works.
# 注意&&操作不能在[ ... ]结构中使用.
依据上下文,&&也可以在与列表(and list)连接命令中。
||逻辑或
if [ $condition1 ] || [ $condition2 ]
# 等同于: if [ $condition1 -o $condition2 ]
# 如果condition1和condition2有一个为真则返回真... if [[ $condition1 || $condition2 ]] # Also works.
# 注意||操作不能在[ ... ]结构中使用.
Bash测试由逻辑操作符连接起来的每一个表达式的退出状态。
Linux Shell编程(12)——操作符的更多相关文章
- linux shell编程总结
linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...
- linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
- Linux Shell编程参考大全
本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...
- linux shell 编程参考
#!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...
- Linux Shell编程与编辑器使用详解
<Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...
- 前端学习 linux —— shell 编程
前端学习 linux - shell 编程 shell 原意是"外壳",与 kernel(内核)相对应,比喻内核外的一层,是用户和内核沟通的桥梁.shell 有很多种,国内通常使用 ...
- linux —— shell 编程(文本处理)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...
- Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||
https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...
- linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行
linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行 crontab每分钟执行一次,但5秒以上才有更新数据,有时候一分钟可能跑不完上一个进程,需要先等10秒再判 ...
- 一文学完Linux Shell编程,比书都好懂
一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...
随机推荐
- DEDE自带的采集功能,标题太短的解决方法
DEDE自带的采集功能,标题太短获取不全的解决方法搜索了好多之后,终于还是在dede的官方论坛找到了答案.增加采集标题长度:255 目的:原标题长度太小,影响文件采集⑴修改系统参数设置(文档标题最大 ...
- DLL Export 报错
编译报错: error : syntax error at token xxxx 修改非Unicode 系统区域设计即可
- [上传下载] C# ImageUpload图片上传类教程与源码下载 (转载)
点击下载 ImageUpload.zip 功能如下图片1.设置属性后上传图片,用法如下 /// <summary> /// 图片上传类 /// </summary> //--- ...
- 'EntityValidationErrors' property for more details
很多小猿遇到这个Exception 的时候,都会有点无厘头.这个时候最好try-- catch下,找到出错的地方.本人习惯在页面上加个lable标签,把exc msg(exception messag ...
- java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹
一.简述 zip用于压缩和解压文件.使用到的类有:ZipEntry ZipOutputStream 二.具体实现代码 package com.joyplus.test; import java.io ...
- [Twisted] transport和protocol解耦
Twisted中transport和protocol完全解耦. 这样设计的优点: 1.不同的Protocol协议实现可以重用相同类型的transport. 2.方便测试:假如测试一个协议实现,可以使用 ...
- ios专题 - openSSL
1 概述 1.1 产生背景 基 于万维网的电子商务和网上银行等新兴应用,极大地方便了人们的日常生活,受到人们的青睐.由于这些应用都需要在网络上进行在线交易,它们对网络通信的安全 性提出了更高的要求 ...
- linux命令sed学习笔记
sed其实就是两个主要的知识点,那就是“怎么选择”和“怎么操作”!
- Win32中GDI+应用(三)---Graphics类
在我理解看来,Graphics是一个device context和你的drawing conetent之间的一个中介.它存储了device context的相关属性,以及drawing content ...
- LINUX 下mysql数据库导出
mysqldump -u root -p dbname > db.sql