您的当前位置:首页正文

树莓派开发(8)——Shell脚本编程

2024-11-24 来源:个人技术集锦

一、Shell脚本简介

  • Shell脚本是什么?
    • shell命令按一定语法组成的文件
  • Shell脚本有什么用?
    • 批处理文件/整合命令
    • 软件启动
    • 性能监控
    • 日志分析
  • Shell命令的本质
    • 内置命令/外部命令
  • Shell脚本语言和C语言一样吗?
    • C:编译型语言
    • Shell:解释型语言
  • 常用的Shell解释器有哪些?
    • /etc/shells
  • Shell启动方式
    • 当程序执行
    • 指定解释器运行
    • source和.

二、Shell脚本语法讲解

  • 定义变量

    • variable=value
    • variable=‘value’
    • variable=“value”
  • 使用变量

    • $variable
    • ${variable}
  • 将命令的结果赋值给变量

    • variable=`command`
    • variable=$(command)
  • 删除变量

    • unset
  • 特殊变量

    变量含义
    $0当前脚本的文件名。
    $n(n≥1)传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1,第二个参数是 $2。
    $#传递给脚本或函数的参数个数。
    $*传递给脚本或函数的所有参数。
    $@传递给脚本或函数的所有参数。当被双引号" "包含时,$@ 与 $* 稍有不同.
    $?上个命令的退出状态或者获取函数返回值。
    $$当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。
  • 字符串拼接

    • 并排放
  • 读取从键盘输入的数据

    • read
  • 退出当前进程

    • exit
  • 对整数进行数学运算

    • (())
  • 逻辑与/或

    command1 && command2
    
    command1 || command2
    
  • 检测某个条件是否成立

    test expression和[ expression ]
    
    选 项作 用
    -eq判断数值是否相等
    -ne判断数值是否不相等
    -gt判断数值是否大于
    -lt判断数值是否小于
    -ge判断数值是否大于等于
    -le判断数值是否小于到等于
    -z str判断字符串 str 是否为空
    -n str判断字符串str是否为非空
    =和==判断字符串str是否相等
    -d filename判断文件是否存在,并且是否为目录文件。
    -f filename判断文件是否存在,井且是否为普通文件。
  • 管道

    • command1 | command2
  • if语句

  • if else 语句

    if condition
    then
    statement1
    else
    statement2
    fi

  • if elif else 语句

    if condition1
    then
    statement1
    elif condition2
    then
    ​ statement2

    ……
    else
    statementn
    fi

  • case in语句

    case expression in
    ​ pattern1)
    ​ statement1
    ​ ;;
    ​ pattern2)
    ​ statement2
    ​ ;;
    ​ pattern3)
    ​ statement3
    ​ ;;
    ​ ……
    ​ *)
    ​ statementn
    esac

  • for in 循环

    for variable in value_list
    do
    ​ statements
    done

  • while 循环

    while condition
    do
    ​ statements
    done

  • 函数

    function name() {
    ​ statements
    ​ [return value]
    }

显示全文