shell 各种命令

read命令

read [选项] 值

read -p(提示语句) -n(字符个数) -t(等待时间,单位为秒) –s(隐藏输入)  

eg:

read –t 30 –p “please input your name: ” NAME

echo $NAME

read –s –p “please input your age : ” AGE

echo $AGE

read –n 1 –p “please input your sex  [M/F]: ” GENDER

echo $GENDER

运算符

num1=11

num2=22

sum=$num1+$num2

echo $sum

格式 :expr m + n 或$((m+n)) 注意expr运算符间要有空格

expr命令:对整数型变量进行算术运算

(注意:运算符前后必须要有空格) 

expr 3 + 5   
expr 3  5

echo `expr 10 / 3`

10/3的结果为3,因为是取整
expr  3 \* 10    

\ 是转义符

计算(2 +3 )×4 的值

1 .分步计算
S=`expr 2 + 3`
expr $S \* 4

2.一步完成计算

expr `expr 2 + 3` \* 4

S=`expr \`expr 2 + 3\`  \* 4`

echo $S

 echo $(((2 + 3) * 4))

$()与${}的区别

$( )的用途和反引号``一样,用来表示优先执行的命令

eg:echo $(ls a.txt)

${ } 就是取变量了  eg:echo ${PATH}

$((运算内容)) 适用于数值运算

eg: echo $((3+1*4))

条件测试

内置test命令

内置test命令常用操作符号[]表示,将表达式写在[]中,如下:

[ expression ]  

或者:

test expression

注意:expression首尾都有个空格

eg: [  ] ;echo $?

测试范围:整数、字符串、文件

表达式的结果为真,则test的返回值为0,否则为非0。

当表达式的结果为真时,则变量$?的值就为0,否则为非0

字符串测试:

test  str1 == str2    测试字符串是否相等 =

test  str1 != str2    测试字符串是否不相等
test  str1            测试字符串是否不为空,不为空,true,false
test  -n str1     测试字符串是否不为空
test  -z  str1    测试字符串是否为空

eg:

name=linzhiling

[ $name ] && echo ok

; 命令连接符号

&& 逻辑与 条件满足,才执行后面的语句

[ -z $name ] && echo  invalid  || echo ok

||  逻辑或,条件不满足,才执行后面的语句

test $name == yangmi && echo ok  || echo  invalid

整数测试:

test   int1 -eq  int2    测试整数是否相等 equals
test   int1 -ge  int2    测试int1是否>=int2
test   int1 -gt  int2    测试int1是否>int2
test   int1 -le  int2    测试int1是否<=int2
test   int1 -lt  int2    测试int1是否<int2
test   int1 -ne  int2    测试整数是否不相等

eg:

test 100 gt 100

test 100 –ge 100

如下示例两个变量值的大小比较:

-gt表示greater than大于的意思,-le表示less equal表示小于等于。

文件测试:

test  -d  file      指定文件是否目录

test  –e  file     文件是否存在 exists
test  -f  file     指定文件是否常规文件
test –L File     文件存在并且是一个符号链接 


test  -r  file    指定文件是否可读
test  -w  file    指定文件是否可写

test  -x  file    指定文件是否可执行

eg:

test -d  install.log

test r install.log

test f xx.log ; echo $?

[ -L service.soft  ] && echo is a link

test -L /bin/sh ;echo $?

[ -f /root ] && echo yes || echo no

多重条件测试:

条件1 –a 条件2 逻辑与  两个都成立,则为真

条件1 –o 条件2 逻辑或 只要有一个为真,则为真

! 条件 逻辑非 取反

eg:

num=520

[ -n “$num” –a “$num” –ge 520 ] && echo “marry you” || echo “go on” 

age=20

pathname=outlog

[ ! -d“$ pathname”] &&  echo usable || echo  used

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值