运算符 流控制 test echo

shell传递参数,

执行shell脚本的时候,向脚本中传递参数,脚本内获取参数的格式为 $n n是一个数字,代表的是

  第几个参数,n是从1开始,0指的是文件的文件名,

        echo "执行的文件名:$0";

        echo "第一个参数为:$1";

    $#传递到脚本的参数个数,  $*显示全部的传入参数。

    三个参数1 2 3 则“*”表示"123" ”@”表示“1” ”2“ ”3”

数组: 可以存放多个值的数据类型 shell不支持多维数组

定义数组
 array_name=(1 2 3 4)
 array_name[0]=value1

读取数组
  ${array_name[index]}

  读取数组中的所有元素
    ${array_name[*]}   ${array_name[@]}

获取数组的长度
    ${#array_name[*]}     ${#array_name[@]}

shell基本运算符:

算术运算符:+ - × / % = == != *号前面使用expr必须加\ *

  原生的bash不支持算术运算,一般通过命令awk expr 来实现

    expr 2 + 2  :表达式与运算符之间要有空格2+2不对,

         完成的表达式要被``包括,0

关系运算符:

 -eq 检测两个数是否相等

 -ne 检测两个数是否不相等

 -gt 检测左边数是否大于右边数

 -lt 检测左边是否小鱼右边

 -ge 检测左边是否大于等于右边

 -le 检测左边是否小于等于右边

     eg:  [$a -eq $b ]   参数要用变量内容

布尔运算符: !非运算 -o 或运算 -a与运算
[! false ] [ alt20o b -gt 100] [$a -lt 20 -a ]

逻辑运算符: && 与 ||或

字符串运算符: = !=

   -z 检测字符串长度是否为0 是则返回true

   -n 检测字符串长度是否为0  不是则返回true

   str 检测字符串是否为空,不为空返回true

文件测试运算符

-b 检测文件是否是块设备文件

-c 检测文件是否是字符设备文件

-d 检测文件是否是目录

、、、、、、

echo 命令

显示普通字符串 : echo “tiansongtao”

显示转移字符串 : echo “\”if is a tian\”“

显示变量 : echo ” $name “

显示换行 : echo -e ” OK! \n” -e 开启转义

显示不换行 : echo -e ” OK \c”

显示结果定向至文件 echo “tiansongtao “>>myfile

原样输出字符串,不转义取变量 echo $tian\"—–$tian\”

显示命令执行结果: echo date—-显示当前时间

printf 模仿C的输出 可以控制多种输出

eg printf format-string [arguments、、、]

    format-string 为格式控制字符串

    arguments  为参数列表

  print "%-10s %-8s %-4s\n" 姓名 性别 体重kg

  print "%-10s  %-8s %-4.2f\n" 郭靖 男 66.2

     结果为: 姓名   性别   体重kg

             郭靖    男     66.2

  %s %c % d %f 都是格式替代符  %-10s:指一个宽度为10的字符,(-表示

       左对其,没有是右对其,)  %-4.2f 表示格式为小数,.2表示两位小数

printf转义字符:

     \a  警告   \b后退    \c抑制不显示输出结果中的换行字符

     \n 换行 \f换页  \v垂直制表,

test命令: 检查某个条件是否成立,他可以进行数值、字符、文件三方面的测试

-eq 等于则为真

-ne  不等于则为真

-gt  大于则为真    -ge  大于等于则为真

-lt  小于则为真    -le  小鱼等于则为真
   eg:  num1=100   num2 = 100
         if test $[num1]  -eq $[num2]
         then

             echo  "两数相等"

shell流程控制

在shell中,如果else没有要执行的语句就不要这个else
    if else
      if  condition
      then
         command1
         command2
      else
         command
      fi

末尾要用fi就是if 倒过来的拼写
if-else -if -else
     if condition1
     then
         command1
     elif condition2
     then
         command
     else
      commandN
     fi

for循环

 for var in item1 item2、、、
 do
    command1
 done
   eg:  for loop in 1 2 3 4 5
        do
           echo "the value is $loop"
        done

while语句
while condition
do
command1
done
eg: int-1
while(( int<=5))doecho int
done

case 语句为多选择语句,

 工作方式,取值后必有单词in,每一个模式以)括号结束,一个模式一致执行到;;

  case 值 in

    模式1)
        command1

        ;;   两个;;号就相当于break

    模式2)
        command2
        ;;

  esac    这个为全部结束标志

eg:  echo `你输入的数字为:`
     read aNum
     case $aNum in

       1) echo `你选择了1`
          ;;

       2) echo `你选择了2`
          ;;
     esac

跳出循环 break

  允许跳出所有循环,(终止执行后面的所有循环)

continue 跳出本次循环,接着执行别的循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值