美文网首页
linux shell编程学习--四函五流

linux shell编程学习--四函五流

作者: 爱编程的凯哥 | 来源:发表于2018-12-14 22:57 被阅读0次
  • shell控制流程

    • if else 语法,test、[] 、[[]]、(())、let 使用
    注意,如果没有else后等内容,else就不要写,直接fi结束if语句,注意用任何语法空格一定要多些,如=号两边,[]中都要每个空格不能少,否则可能会报错

在shell中条件判断有几种,test、[] 、[[]]、(())、let,其中

  1. test使用等同于[]
  2. [[]]支持 &&、||等逻辑语法,[]不支持,[] 需要使用-a,-o的语法实现与或判断
  3. (())使用等同于let,用于整数运算,且使用变量时可以不用加$号

#!/bin/bash
set -x
args=${@}
echo "所有参数${args}"
echo "参数1=$1"
echo "参数2=$2"
c=10
d=90
f=0
let  "f = c + d"
echo "f的结果为"$f


a="nihao"
b="nihao"
if test  $a = $b
then
        echo "参数1为test"
else
        echo "参数1不是test"
fi
#[]写法
if  [ !$2 -o $2 = "do" ]
then
        echo "参数2为do"
else
        echo "参数2不为do"
fi
#[[]]写法
if  [[ !$2 || $2 = "do" ]]
then
        echo "第二次参数2为do"
else
        echo "第二次参数2不为do"
fi

if [ $3 -ge $4 ]
then
        echo "第三个参数大于第4"
else
        echo "第三个参数小于第4"
fi

输出结果
[root@localhost temp]# sh test.sh test do 3 90
+ args='test do 3 90'
+ echo '所有参数test do 3 90'
所有参数test do 3 90
+ echo $'\345\217\202\346\225\2601=test'
参数1=test
+ echo $'\345\217\202\346\225\2602=do'
参数2=do
+ c=10
+ d=90
+ f=0
+ let 'f = c + d'
+ echo $'f\347\232\204\347\273\223\346\236\234\344\270\272100'
f的结果为100
+ a=nihao
+ b=nihao
+ test nihao = nihao
+ echo $'\345\217\202\346\225\2601\344\270\272test'
参数1为test
+ '[' '!do' -o do = do ']'
+ echo $'\345\217\202\346\225\2602\344\270\272do'
参数2为do
+ [[ -n !do ]]
+ echo $'\347\254\254\344\272\214\346\254\241\345\217\202\346\225\2602\344\270\272do'
第二次参数2为do
+ '[' 3 -ge 90 ']'
+ echo $'\347\254\254\344\270\211\344\270\252\345\217\202\346\225\260\345\260\217\344\272\216\347\254\2544'
第三个参数小于第4
  • for循环写法
#!/bin/bash
array=(A B C e)
i=0
echo ${#array[*]}
for vr in ${array[*]}
do
  echo "第${i}个元素${vr}"
  i=`expr ${i} + 1`
done
输出结果:
4
第0个元素A
第1个元素B
第2个元素C
第3个元素e

注意,数据显示所用用${#array[*]}

  • while语法,环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。
#!/bin/bash
a=0
while((${a}<3))
do
   echo "第${a}次进入"
  ##表示+1
   let "a++"
done

 结果
第0次进入
第1次进入
第2次进入

注,shell一样支持break跳出循环,continue跳过当前循环

  • case 写法,与if..else类似的条件判断
case $变量名 in
"值 1")
;;
如果变量的值等于值1,则执行程序1,值
2")
如果变量的值等于值2,则执行程序2
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
  • shell函数

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。
其定义和js相似,为function定义

#!/bin/bash
myFunction(){
  echo "第一个参数是$1"

echo "第二个参数是$2"

echo "第三个参数是$3"
}

myFunction 3 we

输出结果
第一个参数是3
第二个参数是we
第三个参数是

shell的函数传递参数,直接在调用处后面跟参数就行,用空格隔开,

方法内饮用,用$数字表示获取第几个参数

相关文章

  • linux shell编程学习--四函五流

    shell控制流程if else 语法,test、[] 、[[]]、(())、let 使用注意,如果没有else后...

  • Liunx下Shell编程注意事项

    shell语言编程学习教程https://www.runoob.com/linux/linux-shell.htm...

  • 作业-第07周--课堂-Day28-Shell与Shell编程相

    Day28 课堂作业 1. Shell与Shell编程相关 1.1 为什么要学习Shell编程? Linux系统中...

  • Shell编程基础知识

    关于shell编程基础: 1.为什么要学习shell编程? Linux系统中会大量的使用Shell,工作中我们也需...

  • day28-Shell编程3小时光速入门

    Shell编程3小时光速入门 1、为什么要学习shell编程? Linux系统中会大量的使用Shell,工作中我们...

  • linux/shell 分析nginx日志

    一、学习资料 高级Bash脚本编程指南 LINUX与UNIX SHELL编程指南 鸟哥的Linux私房菜 IBM ...

  • 第十三、十四天

    学习内容:Linux shell、嵌入式Linux开发平台搭建收获: 初步掌握了shell脚本编程的各类语法以及执...

  • 初识Linux

    文章目录 一、熟悉Linux环境 二、shell编程 三、Linux进程控制与通信管理 四、文件系统与磁盘管理 五...

  • 2019-01-25

    Linux系统Shell编程指南 前言 适合人群:有类似C编程基础的人 一、Shell编程介绍 Shell解释型语...

  • shell脚本

    SHELL 1.1、为什么要学习shell编程? Linux中会大量的使用shell,工作中我们也需要自动化实...

网友评论

      本文标题:linux shell编程学习--四函五流

      本文链接:https://www.haomeiwen.com/subject/amwuhqtx.html