变量的定义和使用
变量的定义
bash变量定义很简单。如下:
a="hello"
左边是变量名,右边是变量值。bash是弱类型,因此不需要给a加上类型。注意,等号两边不能有空格 比如 a = "hello",这是错误的。
变量使用
变量使用需要在定义的变量名之前加上$,比如我们打印之前定义的a
echo $a
特殊变量后面再说,现在仅仅是最基础的,能够让自己写出一个完整的脚本就行。
流程控制
流程控制则是编写程序必备的过程,比如顺序,循环,条件,分支等等。在其他类C语言中有if…else,for,while,do…while,switch,那么在bash里面,这些应该怎么写呢。
if…else结构
a=0 if [ a -eq 0 ]; then echo "a=0" fi
这里if else结构和我们常见的很不一样,首先条件使用中括号括起来的,其次是if和中括号以及中括号和语句之间必须要有空格存在(这是踩到的第二个坑)。关于关系运算符参考下表
运算符号 | 代表意义 |
= | 等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串 |
!= | 不等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串 |
< | 小于 应用于:整型比较 在[] 中,不能使用 表示字符串 |
> | 大于 应用于:整型比较 在[] 中,不能使用 表示字符串 |
-eq | 等于 应用于:整型比较 |
-ne | 不等于 应用于:整型比较 |
-lt | 小于 应用于:整型比较 |
-gt | 大于 应用于:整型比较 |
-le | 小于或等于 应用于:整型比较 |
-ge | 大于或等于 应用于:整型比较 |
-a | 双方都成立(and) 逻辑表达式 –a 逻辑表达式 |
-o | 单方成立(or) 逻辑表达式 –o 逻辑表达式 |
-z | 空字符串 |
-n | 非空字符串 |
foo=”hello”判断两个字符串相等或者不相等,请用 = 和 != 或者 ==
if [ $foo == "he" ]; then echo "he" else echo $foo fi #这将会输出hello,注意条件里面 == 两边都有空格,此处的 == 还可以用 =,看起来很奇葩的样子
循环
比较喜欢使用while循环,linux下面的while循环是这样的,while…do…done,写法如下。同样需要注意,方括号和while需要有一个空格,方括号里面的表达式与方括号之间也需要一个空格
while [ condition ]; do #statements done
条件运算符见上面的表。死循环的条件是 1,0或者true或者其他任意字符串。
其他的循环暂时就不写了
函数
bash函数的定义
有两种方式
一种使用function关键字,函数名不需要加括号
function func_name{ #statements }
或者另一种,不使用function关键字,直接函数名加上括号
func_name(){ #statements }
bash函数的使用
和一些语言不一样,不需要加括号
func_name
你可能还喜欢下面这些文章
shell中的if语法是最让我头疼的语法之一,它的判断就向使用USB插头一样——拿起来插入不行,翻转再插入还不行,再翻转插入行了!为了搞清楚这部分语言,我收集了一些文章关于if条件判断的用法,希望对你也有些帮助。一、基本语法if [ command ]; then 符合该条件执行的语句fiif [ command ];then 符合该条件执行的语句elif [ command ];then 符合该条件执行的语句else 符合该条件执行的语句fi语法说明bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语
shell可以自定义变量,这为shell的编写带来很多方便定义变量定义变量时,变量名不加美元符号($),如:variableName=”value”注意:变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样同时,变量名的命名须遵循如下规则。首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字)。变量定义举例:myUrl=”http://imhuchao.com/tag/bash”myNum=100使用变量使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:your_nam
bash 4.1.2 版本增加了map数据结构。map是一种常用的数据结构,通过map可以将key映射到一个value。使用方法map在使用之前需要先声明,声明的方式如下declare -A map_namemap需要先声明再使用。参数-A表示声明的变量是一个map。需要注意的是这里的A是大写的字母A。赋值操作map的赋值有两种方式,一种是直接给map赋值,如下:map_name=([“foo”]=”bar” [“hello”]=”world”)另一种是使用下标给map添加key-value对map_name[“foo”]=”bar”map_name[“hello”]=”world”输出所有的
在php中,没有多线程让编程变得简单。但在一些需要并发提升性能的场景下,显得有些无能为力,比如发起一些http请求。但好在curl扩展可以让我们“并发”去请求网络资源。利用这个特点,我们能做很多有趣的事情。最基础的,并发请求网络资源,提升处理速度。并发访问代码<?phpclass ConcurrencyHTTP { private $_requests; private $_callbacks; private $_currentIndex = 0; public function get($url, $header = array(), $timeout = 3
在写if的时候,在写while的时候,总感觉不写一个true或者false就难受。是的,你还不明确php里面都有哪些值是true,哪些值是false!除了false的,都是true!php里面为false的东西 布尔值 FALSE 本身 整型值 0(零) 浮点型值 0.0(零) 空字符串,以及字符串 “0” 不包括任何元素的数组 不包括任何成员变量的对象(仅 PHP 4.0 适用) 特殊类型 NULL(包括尚未赋值的变量) 从空标记生成的 SimpleXML 对象 既然说了除了false以外的都是true了,那么就别天真的以为-1是false了,它也是true。有
赞赏微信赞赏
支付宝赞赏
这些我都看不懂
我讲给你~