[关闭]
@helen- 2019-03-14T03:08:42.000000Z 字数 1588 阅读 752

DAY4 shell编程

研究生学习 Linux基础


shell

是一种交互式的脚本程序设计语言

shell: 外壳 通过shell操作内核
shell的操作 :应用软件 shell命令
交互式 : 每次执行一个shell命令都能得到一个回复
静态(脚本)语言不需要编译 直接解释执行
默认shell解释器 bash

shell工作原理

shell脚本的执行方式

# !/bin/bash 使用bash解释器

shell注释

单行注释

#

多行注释

:<< !
注释内容
!

shell变量

$ { NAME } ss 变量名最好大写

-  如果不用source执行,使用可执行权限去执行 可以使用export 全局变量 子进程全都可访问 ,父进程无法访问

所有类型都是字符串类型
unset 撤销变量
在A脚本中执行b.sh: source /root/bin/b.sh

不加source 无法打印(父进程+子进程)数据没有共享
export :设置全局变量

反引号 ``

a = ls -l/root/bin` 可以运 行反引号里面的命令 同时把结果返回给变量
或者 a =$(ls -l/root/bin)


运算符:

三元表达式 ( ) && echo yes || echo no
为真 yes 为假 no
2. 分支运算

  1. if [] #前后要有空格
  2. then
  3. echo
  4. elif[]
  5. then
  6. echo
  7. else
  8. fi
  9. while
  10. do
  11. done
  12. case $a in
  13. start)
  14. echo " "
  15. ;;
  16. stop)
  17. echo " "
  18. ;;
  19. *)
  20. echo " "
  21. esac
  22. for 变量 in {1..50} # 从1-50
  23. do
  24. done
  25. for ((i=0;i<2;i++))
  26. do
  27. done

数组

  1. mingxing=(1 2 3)
  2. echo ${mingxing[0]}
  3. echo ${mingxing[*]} #打印所有数组名
  4. echo ${mingxing[*]:2:3} #从第2个数组开始打印3个
  5. echo ${mingxing[*]:(-2)} #从倒数第二个开始打印所有数组
  6. echo ${!mingxing[@]} #打印有值下标
  7. echo${#mingxing[*]} #求数组实际长度
  8. mingxing+=(4) #追加
  1. for ip in${IP[*]}
  2. do
  3. echo $ip
  4. done

函数

  1. 函数的定义
  1. function myfunc(){
  2. }
  3. myfunc # 把函数当成命令来操作
  4. # 使用function定义 先定义再使用
  5. # 命名规范
  6. # shell函数本身不用声明传参,在使用直接传参 sh for.sh 1 2 3
  7. # 把函数当命令执行
  8. # 使用 $# 查看参数个数 使用$@接收所有参数内容 使用$?接收函数返回值
  1. 跨脚本函数调用
    使用source bash.sh 把bash.sh调入other.sh中.实际上source是把bash脚本所有内容直接复制到other中 一起执行.
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注