博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell脚本语法
阅读量:6275 次
发布时间:2019-06-22

本文共 2863 字,大约阅读时间需要 9 分钟。

hot3.png

1.Shell脚本是什么:

    Shell脚本(shell script)是利用shell的功能所写的一个程序,这个程序是使用,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。

    更明白地来说,shell script就像早期dos年代的,最简单的功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令,而shell script更是提供了,循环,条件以及等重要功能,让使用者可以直接以shell来写程序,而不必使用类似C程序语言等传统程序编写的语法。

2.shell和shell脚本的区别:

    确切一点说,Shell就是一个,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。

3.Shell脚本语法:

  1.   第一行必须是"#!/bin/sh"
    1. 它不是注释,"#!/bin/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在;
    2. 如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell,为了确保脚本能100%正常运行,加上这个声明是最严谨的选择;
  2. #后面跟的是注释
  3. 在执行写好的脚本之前,需要给写好的脚本加上可以执行的权限,否则无法执行,加权限的命令是(假设写好的脚本名称为helloworld.sh):chmod +x helloworld.sh
  4. helloworld.sh
    #!/bin/bashecho "Hello world!"

     

  5. 定义变量

    #!bin/shmy_name="huahao"strTest="hello,$my_name"echo $strTestecho ${strTest}strTest1="abcd"echo ${#strTest1} #echo the length of strTest1strTest2="this is a text"echo ${strTest2:5:9} #is a textstrTest3="this is a fun text,althought i don't konw where are the fun point"echo `expr index "$strTest3" where`

     

  6.  读取变量

    #!/bin/shread nameecho "hello,$name ,this is shell"

     

  7. if判断

    #!/bin/shnum1="ru1oob"num2="runoob"if test $num1 = $num2then    echo '两字符串相等!'else    echo '两字符串不相等!'fi

     

  8. 一些判断的参数

    #!/bin/shnum1=100num2=100if test $num1 -eq $num2  #eq nq gt ge lt lethen    echo 'equal!'else    echo 'not equal!'fistr1="test String"str2="test String"if test $str1 = $str2 # = != z nthen    echo 'string equal~'else    echo 'string is not equal~'fi

     

  9. 数组

    array_name=(value0value1value2value3)array_name[4]=value4echo ${array_name[4]}echo ${array_name[0]}echo ${array_name[@]}length=${#array_name[@]}length1=${#array_name[0]}echo length=$lengthecho length1=$length1

     

  10. case

    #!/bin/shecho "input some fun num,like 1 to 3: "echo "you number is :"read numcase $num in    1) echo "hahaha"    ;;    2) echo "xixixi"    ;;    3) echo "hiahiahia"    ;;    *) echo "hehe,this is not a fun num"    ;;esac

     

  11. 函数

    #!/bin/shfunWithReturn (){echo "input your number,boy"echo "your first number:"read num1echo "your second number:"read num2echo "your two number is $num1 and $num2"return $(($num1+$num2))}echo "-----------------------------"funWithReturnecho "the result is $?"funWithParams(){echo "first param is $1"echo "10th param is ${10}"echo "total number is $#"echo "all params :$*"}funWithParams 1 2 3 4 5 6 7 8 9 10 11

     

  12. for循环

    #!/bin/shname="rain man's blog"for loop in $name; do    echo $loop;done

     

  13. 格式化输出日期

    #!bin/shcurdate="`date +%Y%m%d%H%M%S`"echo $curdate

     

  14. 退出

    #!bin/shexist 0    # 返回0,表示成功exist 1    # 返回1,表示失败

     

  15. 系统变量

    #!bin/shpwd=$PWD      # 当前目录user=$USER    # 当前用户echo $pwdecho $user

    大概就先写这么多简单的语法吧,想要深入的童鞋可以自行百度查找文档深入学习一下。

转载于:https://my.oschina.net/lonelycode/blog/823781

你可能感兴趣的文章
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>
继承自ActionBarActivity的activity的activity theme问题
查看>>
设计模式01:简单工厂模式
查看>>
项目经理笔记一
查看>>
Hibernate一对一外键双向关联
查看>>
mac pro 入手,php环境配置总结
查看>>
MyBatis-Plus | 最简单的查询操作教程(Lambda)
查看>>
rpmfusion 的国内大学 NEU 源配置
查看>>
spring jpa 配置详解
查看>>
IOE,为什么去IOE?
查看>>