入门---shell编程运算符 退出状态
1.3 shell编程运算符 退出状态
运算符:
+ - * / %
执行运算:
1.$(( ab) )
可以有空格
里面的运算符不需要转义
如果和字符串相加,字符串的变量默认为0
2.expra+b
数字两遍必须有空格
里面的运算符需要转义 转义符
不支持数字和字符串相加
不支持浮点数运算
3.[] 使用方括号
echo $[ab]
echo fuhao
可以有空格
里面的运算符需不要转义
不支持浮点数运算
以上三种都可使用变量
浮点数运算:
bc //linux自带的计算器
//支持变量运算
scale=4 //指定小数点后面保留4位
如何应用到脚本里:
借用管道符号
echo “scale=5; 10/ 3” | bc
运算多行:d=bc << EOF d=$ (bc << EOF 1+2 1+2 3+4 3+4 5*6 5*6 EOF EOF
)
例子:
#vim expr. sh
#!/bin/bash
echo “scale=5; 10/ 3” | bc
a=5.1
b=1.2
c=3
d = bc << EOF e =($a + $b) f =( $a-$c ) e+f EOF
echo $d
sh expr. sh
`` 和 $ (命令)
//效果是一样的
退出状态
echo $?
查看上一个命令执行的退出状态
返回值为0时,代表命令执行成功
非0的正整数时,执行不成功
0-255
exit=$ (echo $?)
0 命令成功结束
1 一般性未知错误
2 不适合shel1的命令
126 命令不可执行
127 命令未找到
128 无效的退出参数
130 通过Ctrl+c终止的命令
255 正常范围之外的退出状态码
状态码是可以自己定义的:0-255
300-255=45
exit1=4
exit2=5
exit3=6
第1行
echo $exit1
第2行
第3行
exit $变量名
//自定义返回值
算术扩展和let进行算术运算
算术扩展
可以对算术表达式求值并替换成所求得的值
看一下格式: $(( 算术表达式))
注意:算术表达式只能是整数,不能对浮点数进行算术运算
let运算
运算不能有空格
若非要有看空格怎么办?用双引号引起来!
shell脚本编程 变量补充 if条件判断
变量的类型:
字符串 数值 布尔类型:true false null
shell中指定变量的类型: declare
declare:
内置命令
用来声明和修改变量的属牲(只读–readonly-- r)
declare -r a=10
//不能修改包括不能删除
例子:
declare -r timedate=date +%Y%m%d
echo $timedate
timedate=i date +%y%m%d
unset timedate
设置为数值变量:
declare -i 变量名
// 只能存储数值
// 不能为小数,如果存小数,会只保留整数
// 不能存字符串类型,存字符串值显示为0
例子
declare -i a
a=10.
echo $a
a=9/3
echo $a
查看变量的属性和值:
# declare -p 变量名
// declare -i a =“10”
数组:
一个变量对应一个值: a =10
一个变量对应多个值:
linux =(centos debain suse redhat)
当你想要定义多个值用括号括起来里面要空格分开
查看数组的值:
# echo ${linux [0]}
//下标 从前往后从0开始计数
//从后往前从-1开始计数
显示所有内容:
# echo ${linux[@]}
在已有的数组中添加:
# linux[4]=febora
//注意:(不能跳过数组下标去添加加数组的值,会出现为空)
在已有的数组上更改:
# linux[0]=
例子
echo $linux[0]
echo $linux.haha
echo ${linux[0]}
echo ${linux[1]}
if条件判断、
语法结构:
if 命令/判断语句
then
执行语句
fi 结束
或者
if command ; then
执行语句
fi
if 5>2
then
echo “you are OK”
fi
if pwd(显示当前目录)
#!bin/bash
//测试if开始的语句
if pwd
then
echo “nihao”
fi
/root
nihao
//执行了if中pwd的命令,由于状态码是0,又执行了then中的语句
#sh ifone.sh
if条件判断一个用户是否正在当前系统上使用,如果是,显示在使用,
并列出此家目录的信息。
#vim test.sh
#!bin/bash
#useradd cml
#/etc/passwd
username =cml
if grep username/
fi
升级脚本:
用户从键盘输入用户的名字,然后进行查询
#!/bin/bash
read -p "please input your username:"username
if grep username/
fi
上一篇: struts2 三种传值方式
下一篇: (Python第八天)模块