AI智能
改变未来

Shell之常用语法总结

Shell常用语法总结

  • 运算符
  • 逻辑算符 || &&
  • 布尔运算符 ! -a -o
  • 数组的定义及打印方法
  • 从控制台读取数据并打印
  • 赋值,删除,单双引号
  • 导包调用其它脚本文件的方法
  • 脚本内方法的编写
  • 我的方法
  • 输出字体加颜色
  • While ,for无限循环 case选择结构
    • while true
    • for(( ; ; ))
  • while循环
  • Until
  • Let
  • while
  • 乘法口诀
    • 高级版本
  • 1到100的和
  • for循环的字符串用法
  • If语句比较大小
  • while循环读取content文件,将adds.txt文件覆盖到content文件
  • 格式输出
  • test几种用法
  • 运算符

    逻辑算符 || &&

    #a=10#b=15#if [[ $a -ge 10 && $b -le 15 ]]#then#echo \"$a -ge 10 && $b -le 15: true\"#else#echo \"$a -ge 10 && $b -le 15: false\"#fi

    布尔运算符 ! -a -o

    #a=100#b=150#if [ $a -ge 100 -a $b -gt 150 ]#then#echo \"$a -gt 100 -a$b -gt 150: true\"#else#echo \"$a -gt 100 -a$b -gt 150: false\"#fi

    数组的定义及打印方法

    arry=(\"张三\" \"list\" 32 28)echo ${arry[2]}echo \"------取全部值----------\"echo \"数组的个数为:${#arry[*]}\"echo \"数组的个数为:${#arry[@]}\"echo \"数组的所有元素为:${arry[*]}\"echo \"数组的所有元素为:${arry[@]}\"echo \"--------1----------\"for i in $(seq 0 ${#arry[@]})doecho ${arry[$i]}doneecho \"--------2----------\"#数组通过for的遍历方式for value in ${arry[*]}doecho $valuedone

    从控制台读取数据并打印

    #echo \"文件名:$0\"#echo \"长度:$#\"#echo \"所有:$*\"#for i in \"$*\"#do#echo $i#done#for value in \"$@\"#do#echo $value#doneread nameecho $name is a 大帅哥echo \"参数个数为:$#\"echo \"shell传参\"echo \"文件路径及名字:$0\"echo \"第一个参数:$1\"echo \"第一个参数:$2\"

    赋值,删除,单双引号

    myName=\"gree\"echo ${myName}echo \"$myName hei\"echo \'$myName hei\'#unset myName#echo $myName

    导包调用其它脚本文件的方法

    #!/bin/bash. ./fundemo.shnum1=200num2=300sum=`myFunReturn $num1 $num2`echo \"contains.sh 传值求和: $sum\"

    脚本内方法的编写

    myFunReturn(){#read -p \"请输入一个数字:\"  num1#read -p \"请输入一个数字:\"  num2num1=$1num2=$2#value=$[num1+num2]#echo \"方法内的结果:$value\"echo $[num1+num2]}sum=`myFunReturn 21 2222`echo \"两个数的和为:$sum\"

    我的方法

    fun(){read -p  \"第一个数:\"  nu1read -p  \"第二个数:\"  nu2#return $(($nu1+$nu2))#return `expr $nu1 + $nu2`#sum=`expr $nu1 + $nu2`#sum=$[ nu1 + nu2 ]sum=$((nu1 + nu2))echo $sum}value=`fun 21 2222`echo \"两数之和为:$value\";#echo $?(这一行用于方法内return返回值的接受输出,以上方法没有用到)

    输出字体加颜色

    #myFun(){#echo -e \"\\033[32mHello World!\\033[0m\"#}#echo \"start\"#myFun#echo \"end\"

    While ,for无限循环 case选择结构

    while true

    doread -p \"请输入一个数字:\" aNumcase $aNum in1)echo \"choose 1\";;2)echo \"choose 2\";;*)echo \"no choose\"break;;esacdone

    for(( ; ; ))

    doecho \"请输入1-3之间的数\"read nucase $nu in1) echo 1;;2) echo 2;;3) echo 3;;*) echo \"游戏结束\"break;;esacdone

    while循环

    #a=999#b=666##while (( $a >= 992 ))#do#echo \"当前 a 的值为:$a\"#let \"a--\"#done

    Until

    #a=0#until((a>10))#do#echo \"$a\"#let ++a#done#a=0#until [ ! $a -lt 10 ]#do#echo \"$a\"#a=$[a+1]#done

    Let

    #let a=5+3#let b=5-3#let c=a++#let d=b--#echo \"$a $b $c $d\"

    while

    #int=1#while(( $int<=10 ))#do#echo $int#int=$[int+1]#done

    乘法口诀

    #for((i=1; i<=9; i++))#do#for((j=1; j<=i; j++))#do#echo -n -e \"$j*$i=$[i*j]\\t\"#done#echo \"\"#done

    高级版本

    for i in $(seq 9)dofor j in $(seq $i)doecho -n -e \"$j*$i=$(($i*$j))\\t\"doneecho \"\"done我的版本#ji=0#for((i=9; i>=1; i--  ))#do#for((j=9; j>=i; j--  ))#do#echo -n -e \"$i*$j=$[i*j]  \"#done#echo \"\"#done

    1到100的和

    #sum=0#for((i=1; i<=100; i++))#do#sum=`expr $i + $sum`#done#echo \"$sum\"

    for循环的字符串用法

    #for str in \"This\" \"is\" \"a\" \"string\"#do#echo \"$str\"#done#for num in 1 2 3 4 11#do#echo \"$num\"#done

    If语句比较大小

    #num1=100#num2=200#if [ $num1 == $num2 ]#then#echo \"两个数相等\"#elif [ $num1 -gt $num2 ]#then#echo \"num1大于num2\"#else#echo \"num1小于num2\"#fi

    while循环读取content文件,将adds.txt文件覆盖到content文件

    #!/bin/bashwhile read contentdoecho $content | grep \"142\" | sed \'s/,/ /g\' | awk \'{print $2}\'done < adds.txt | sed -n \'1,3p\'

    格式输出

    printf \'%s\\t%s\\t%s\\n\' gree wanglei zhangjun#printf \'%s\\n\' gree wanglei zhangjun#printf \'%s %d\\n\' gree 32#printf \"%10s %10s %10s\\n\" 姓名 性别 体重kg#printf \"%-10s %-10s %-10s\\n\" 姓名 性别 体重kg#printf \"%-10s %-10s %-4.2f\\n\" 张三 男 53.1264#printf \"%-10c %-10s %-4.2f\\n\" abcde 男 53.1264

    test几种用法

    #echo \"Hello Shell\"#printf \"Hello, Shell \"#echo \"Hai\"if test -e /home/zxlthenecho \"有\"elseecho \"没有\"fi#num1=100#num2=200#if test $num1 -eq $num2#then#echo \"相等\"#else#echo \"不相等\"#fi#result=$[num1+num2]#result1=`expr $num1 + $num2`#echo \"$result \\t $result1\"echo stringecho \"hello world!\"echo \'\"hello world!\"\'echo \\\"hello world!\\\"
    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » Shell之常用语法总结