Shell语法

  • 如何抒写一个shell脚本

  • shell脚本运行

  • shell中的特殊符号

  • 管道

  • 重定向

  • shell中数学运算

  • 脚本退出


shell脚本就是将完成一个任务的所有的命令按照执行的先后顺序,自上而下写入到一个文本文件中,然后给予执行权限。

一、如何抒写一个shell脚本

shell脚本的命名:

名字要有意义,最好不要用a、b、c、d、1、2、3、4这种方式命名;虽然linux系统中,文件没有扩展名的概念,依然建议你用.sh结尾;名字不要太长,最好能在30个字节以内解决。例如:check_memory.sh

shell脚本格式:

shell脚本开头必须指定脚本运行环境 以 #!这个特殊符号组合来组成。如: #!/bin/bash 指定该脚本是运行解析由/bin/bash来完成的;

shell中的注释使用 # 号



  1. shell脚本中,最好加入脚本说明字段
  2. #!/bin/bash
  3. #Author: Bai Shuming
  4. #Created Time: 2018/08/2712:27
  5. #Script Description: first shell study script

 

二、如何运行一个shell脚本



  1. 脚本运行需要执行权限,当我们给一个文件赋予执行权限后,该脚本就可以运行。
  2. #chmod u+x filename
  3.  
  4. 如果不希望赋予脚本执行权限,那么可以使用bash命令来运行未给予执行权限的脚本bash fiename
  5. #bash filename

三、shell中的特殊符号



  1. 有基础的同学不要和正则表达式中的符号含义搞混淆了。
  2.  
  3. ~: 家目录 # cd ~ 代表进入用户家目录
  4. !: 执行历史命令 !! 执行上一条命令
  5. $: 变量中取内容符
  6. + - * \ %: 对应数学运算 加 减 乘 除 取余数
  7. &: 后台执行
  8. *: 星号是shell中的通配符 匹配所有
  9. ?: 问号是shell中的通配符 匹配除回车以外的一个字符
  10. ;: 分号可以在shell中一行执行多个命令,命令之间用分号分割
  11. |: 管道符 上一个命令的输出作为下一个命令的输入 cat filename | grep "abc"
  12. \: 转义字符
  13. ``: 反引号 命令中执行命令 echo "today is `date +%F`"
  14. ' ': 单引号,脚本中字符串要用单引号引起来,但是不同于双引号的是,单引号不解释变量
  15. " ": 双引号,脚本中出现的字符串可以用双引号引起来

四、shell中的管道运用



  1. | 管道符在shell中使用是最多的,很多组合命令都需要通过组合命令来完成输出。管道符其实就是下一个命令对上一个命令的输出做处理。

五、shell重定向



  1. > 重定向输入 覆盖原数据
  2. >> 重定向追加输入,在原数据的末尾添加
  3. < 重定向输出 wc -l < /etc/passwd
  4. << 重定向追加输出 fdisk /dev/sdb <

六、shell数学运算



  1. expr 命令:只能做整数运算,格式比较古板,注意空格
  2. [root@baism ~]# expr 1 + 1
  3. 2
  4. [root@baism ~]# expr 5 - 2
  5. 3
  6. [root@baism ~]# expr 5 \* 2 #注意*出现应该转义,否则认为是通配符
  7. 10
  8. [root@baism ~]# expr 5 / 2
  9. 2
  10. [root@baism ~]# expr 5 % 2
  11. 1
  12. 使用bc计算器处理浮点运算,scale=2代表小数点保留两位
  13. [root@baism ~]# echo "scale=2;3+100"|bc
  14. 103
  15. [root@baism ~]# echo "scale=2;100-3"|bc
  16. 97
  17. [root@baism ~]# echo "scale=2;100/3"|bc
  18. 33.33
  19. [root@baism ~]# echo "scale=2;100*3"|bc
  20. 300
  21.  
  22. 双小圆括号运算,在shell中(( ))也可以用来做数学运算
  23. [root@baism ~]# echo $(( 100+3))
  24. 103
  25. [root@baism ~]# echo $(( 100-3))
  26. 97
  27. [root@baism ~]# echo $(( 100%3))
  28. 1
  29. [root@baism ~]# echo $(( 100*3))
  30. 300
  31. [root@baism ~]# echo $(( 100/3))
  32. 33
  33. [root@baism ~]# echo $(( 100**3)) #开方运算
  34. 1000000

七、退出脚本



  1. exit NUM 退出脚本,释放系统资源,NUM代表一个整数,代表返回值。


  • 作者:合十
  • 发表时间:2021年9月4日 02:27
  • 更新时间:2024年4月29日 18:29
  • 所属分类:Shell脚本编程

Comments

该文章还未收到评论,点击下方评论框开始评论吧~