退出状态
Linux系统中,每个命令执行完成后,系统都会返回1个退出状态来表示命令执行是否正确
最后1次执行的退出状态值保留在内置变量 $? 中,通过echo $? 可判断命令是否执行成功
POSIX规定的几种退出状态值:
0 运行成功,未出现任何问题
1~125 运行失败,脚本命令,系统命令错误,或者参数传递错误等
126 找到命令但无法执行
127 未找到命令或无效命令
>128 命令被系统强制结束
测试命令
判断某个条件或某组条件是否成立,如果为真,则返回0,为假,则返回非0值
测试命令有两种方式:
test expression
[ expression ]
"[" 启动测试,在"[" 与 "]"之间,前后空格不能省略
第2种方式,常与if、case、while语句联合使用
整数比较运算符
-eq 等于
-ge 大于等于
-gt 大于
-le 小于等于
-lt 小于
-ne 不等于
num=100
[ "$num" -ge 100 ]
echo $?
字符串比较运算符
string 测试字符串是否不为空
-n string 测试字符串是否不为空
-z string 测试字符串是否为空
string1 = string2 测试字符串是否相等
string1 != string2 测试字符串是否不等
str1="Hello"
[ "$str1" = "hello" ]
echo $?
1 #退出状态为1,表示不相等
文件操作符
test file_operator File 或
[ file_operator File ]
File可以是文件名、目录、文件路径等
-d file 测试file是否为目录
-f file 测试file是否为普通文件
-e file 测试file是否存在
-s file 测试file长度是否不为0
-r file 测试file是否为可读权限
-w file 测试file是否为可写权限
-x file 测试file是否为可执行权限
-L file 测试file是否符号化链接
[ -d file_exam ] 判断文件是否为目录
[ -f file_exam ] 判断文件是否为文件
[ -e file_exam ] 判断是否存在,创建或删除1个文件后,判断是否创建或删除成功
逻辑运算符
用来与测试命令联合使用
与、或、非
! expression 非(not)
expression1 -a expression2 且(and)
expression1 -o expression2 或(or)
[ -e fiel1 -a -x file1 ] #测试fiel1是否存在且可执行
[ "$integer1" -lt 5 -o "$integer1" gt 10 ] #测试integer1小于5或者大于10
条件判断
根据不同的条件执行不同的语句
if
if expression
then
command1
command2
fi
注意:测试条件expression后面没有分号,则then语句必须换行
if和then可以处于同一行,必须使用 ";" 来终止if语句
if expression;then
command1
command2
fi
#!/bin/bash
echo "input your name"
read name #读取键盘输入,并赋值给变量name
if [ -z "$name" ];then
echo "name cannot be null"
fi
if...else
if expression;then
command1
command2
else
command3
fi
if...elif...else
if expression1;then
command1
command2
elif expressionN
command3
elif expressionX
command4
else
command5
fi
case选择
case variable in
value1)
comamnd1;;
value2)
command2;;
valueN)
commandN;;
*)
commandDefault;;
esac
case结构的变量值variable逐个与value1,value2,...,valueN进行比较,直到找到匹配项
如果找到,则执行该项下面的语句,遇到";;"时,直接跳出case到esac
否则,执行"*)"下面的语句,直到";;"时结束
#!/bin/bash
echo "input you favor number"
read number1
case "$number1" in
1)
echo "You are good!";;
2)
echo "You are bad!!";;
*)
echo "You are nothing!!!";;
esac
运算符
算术运算符
+ 加 (+=)
- 减 (-=)
* 乘 (*=)
/ 除 (/=)
% 取余 (%=) 10%3 = 1
** 幂运算 (**=) 5**3 = 125
位运算符
<< (<<=) 左移 即*2 左移n位,即乘以2的n次幂
>> (>>=) 右移 即/2 右移n位,即除以2的n次幂
& (&=) 按位与
| (|=) 按位或
~ (~=) 按位异或
^ (^=) 按位取反
自增自减运算
++variable 先自增再参与运算
variable++ 先参与运算再自增
--variable 先自减再参与运算
variable-- 先参与运算再自减
数字常量
Linux Shell默认将数字按10进制处理
如果要使用其它进制,需要对其进行特殊标记
当使用数字0作为前缀,表示8进制
当使用0x进行标记,表示16进制
另外,还可以使用#num进行标记
8# 则表示8进制,如8#75
16# 则表示16进制,如16#F9
注意:num#后面跟的数字不能超过其对于进制中最大数值范围
如,2#20则错误,因为2进制范围是0~1,2已经超出有效范围。
相关推荐
第一篇 Linux和C编程基础 第1章 Linux系统概述 1.1 Linux操作系统介绍 1.1.1 Linux的发展历程 1.1.2 Linux的特性 1.1.3 Linux的内核版本和发行版本 1.2 C语言简介 1.2.1 C语言的...
第一篇 Linux和C编程基础 第1章 Linux系统概述 1.1 Linux操作系统介绍 1.1.1 Linux的发展历程 1.1.2 Linux的特性 1.1.3 Linux的内核版本和发行版本 1.2 C语言简介 1.2.1 C语言的...
第一篇 Linux和C编程基础 第1章 Linux系统概述 1.1 Linux操作系统介绍 1.1.1 Linux的发展历程 1.1.2 Linux的特性 1.1.3 Linux的内核版本和发行版本 1.2 C语言简介 1.2.1 C语言的...
第一篇 Linux和C编程基础 第1章 Linux系统概述 1.1 Linux操作系统介绍 1.1.1 Linux的发展历程 1.1.2 Linux的特性 1.1.3 Linux的内核版本和发行版本 1.2 C语言简介 1.2.1 C语言的...
第一篇 Linux和C编程基础 第1章 Linux系统概述 1.1 Linux操作系统介绍 1.1.1 Linux的发展历程 1.1.2 Linux的特性 1.1.3 Linux的内核版本和发行版本 1.2 C语言简介 1.2.1 C语言的...
第一篇 Linux和C编程基础 第1章 Linux系统概述 1.1 Linux操作系统介绍 1.1.1 Linux的发展历程 1.1.2 Linux的特性 1.1.3 Linux的内核版本和发行版本 1.2 C语言简介 1.2.1 C语言的...
第一篇 Linux和C编程基础 第1章 Linux系统概述 1.1 Linux操作系统介绍 1.1.1 Linux的发展历程 1.1.2 Linux的特性 1.1.3 Linux的内核版本和发行版本 1.2 C语言简介 1.2.1 C语言的...
第一篇 Linux和C编程基础 第1章 Linux系统概述 1.1 Linux操作系统介绍 1.1.1 Linux的发展历程 1.1.2 Linux的特性 1.1.3 Linux的内核版本和发行版本 1.2 C语言简介 1.2.1 C语言的...
第一篇 Linux和C编程基础 第1章 Linux系统概述 1.1 Linux操作系统介绍 1.1.1 Linux的发展历程 1.1.2 Linux的特性 1.1.3 Linux的内核版本和发行版本 1.2 C语言简介 1.2.1 C语言的...
第一篇 Linux和C编程基础 第1章 Linux系统概述 1.1 Linux操作系统介绍 1.1.1 Linux的发展历程 1.1.2 Linux的特性 1.1.3 Linux的内核版本和发行版本 1.2 C语言简介 1.2.1 C语言的...
在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如...
在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如...