linux shell 脚本 $的常见用法、case语句、整数数值运算、字符串判断、数值判断、逻辑判断、linux 里的计算器

$+ 的常见用法:

$0 :  脚本的名字

$1 :  传入的第一个变量

$2 : 传入的第二个变量  .....以此类推

$! :  获取上一个进程号

$$ : 当前的进程号

$? : 获取上一条命令的放回值,返回值为0则表示上一条命令没有错误

$* : 代表所有参数

$@ : 与$* 一样

$# : 参数的数量

 ' ' 单引号原样输出 不会解析变量
" " 双引号可以解析变量

shell 中[ ]  与 [[ ]]  的区别 、 

    [ ] 遇到空格会进行分词处理
    [[ ]]  不会进行分词处理, 判断更准确 (推荐使用)

linux 里的计算器

可以直接进入bc

[root@yigeling lianxi]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
4 + 1
5
5 % 2
1
3.5 + 1
4.5

也可以用管道符号:

[root@yigeling lianxi]# echo 3+5 |bc
8
[root@yigeling lianxi]# echo 3.5*2 |bc
7.0

 还可以进行判断

返回0表示假,返回1表示真

[root@yigeling lianxi]# echo "3.5>2.5" |bc
1
[root@yigeling lianxi]# echo "3.5<2.5" |bc
0

整数的数值运算:

第一种:  $(( 表达式 ))
第二种: $[ 表达式 ]   只适合整数
第三种: expr 表达式

[root@yigeling lianxi]# echo $(( 3+5 ))
8
[root@yigeling lianxi]# echo $[3+5]
8
[root@yigeling lianxi]# echo `expr 3 + 5`  要有空格
8

 常见的判断

[ ]表示条件测试。注意这里的空格很重要。要注意在'['后面和']'前面都必须要有空格。
常用判断:
[ -d FILE ] 如果 FILE 存在且是一个目录则返回为真。
[ -f FILE ] 如果 FILE 存在且是一个普通文件则返回为真。

 字符串的判断

[ -z STRING ] 如果STRING的长度为零则返回为真,即空是真
[ -n STRING ] 如果STRING的长度非零则返回为真,即非空是真
[ STRING1 ]  如果字符串不为空则返回为真,与-n类似
[ STRING1 == STRING2 ] 如果两个字符串相同则返回为真
[ STRING1 != STRING2 ] 如果字符串不相同则返回为真
[ STRING1 < STRING2 ] 如果 “STRING1”字典排序在“STRING2”前面则返回为真。
[ STRING1 > STRING2 ] 如果 “STRING1”字典排序在“STRING2”后面则返回为真。

数值判断

数值判断
[ INT1 -eq INT2 ] INT1和INT2两数相等返回为真 ,=
[ INT1 -ne INT2 ] INT1和INT2两数不等返回为真 ,<>
[ INT1 -gt INT2 ] INT1大于INT2返回为真 ,>
[ INT1 -ge INT2 ] INT1大于等于INT2返回为真,>=
[ INT1 -lt INT2 ] INT1小于INT2返回为真 ,<
[ INT1 -le INT2 ] INT1小于等于INT2返回为真,<= 

 逻辑判断

逻辑判断
[ ! EXPR ] 逻辑非,如果 EXPR 是false则返回为真。
[ EXPR1 -a EXPR2 ] 逻辑与,如果 EXPR1 and EXPR2 全真则返回为真。
[ EXPR1 -o EXPR2 ] 逻辑或,如果 EXPR1 或者 EXPR2 为真则返回为真。
[ ] || [ ] 用OR来合并两个条件
[ ] && [ ] 用AND来合并两个条件

 类似python的逻辑短路运算:

使用&& || 来实现
cmd1 && cmd2 如果cmd1执行成功,或者为真,则执行cmd2
cmd1 || cmd2 如果cmd1执行不成功,或者为假,则执行cmd2
cmd1 && cmd2 || cmd3  如果cmd执行成功,就执行cmd2,不成功就执行cmd3 

 case语句

case $变量名 in
条件1)
    执行语句一
    ;;
条件2)
    执行2
    ;;
esac

 

[root@yigeling lianxi]# cat case.sh 
#!/bin/bash 

case $1 in 
# 当$1变量等于1时执行
1)
	echo "$1 是 1"
	;;
# 当$1变量等于2时执行
2)
	echo "$1 是 2"
	;;
#以上都不是时执行
*)
	echo "$1 不是1也不是2"
    ;;
esac 

[root@yigeling lianxi]# bash case.sh 1
1 是 1
[root@yigeling lianxi]# bash case.sh 2
2 是 2
[root@yigeling lianxi]# bash case.sh ab
ab 不是1也不是2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值