Shell脚本编程技巧与优化指南

一、shell脚本

实质:多个命令放在一个文件,是一个命令集合。

作用:在操作系统里面配置软件。属于解释性语言,后缀名.sh

特点

  • 属于解释性语言
  • 擅长文件管理、操作系统管理
  • 开发效率高
  • 执行效率低
  • 可移植性好
  • 二、脚本编程流程

    1、vim xx .sh (进去添加#!/bin/bash)

    2、编写脚本 

    3、chmod +x xx.sh chmod改变命令的权限chmod +x (x表示加上执行权限)

    4、./xx.sh (可执行文件)

    看着有x就说明可以执行运行,说明文件是可执行的。

    解释-rwxrwxr-x 1

  • -rwx(代表作者的权限,第一能不能读有就是r,没有就是-,w写,x是可以不可以执行)
  • rwx(组用户)可以把其他人加到组里面
  • 其他人 权限交低
  • 1 代表硬链接(它允许两个文件名关联一个文件内容)
  • 三、 shell 变量

    1、环境变量 :env(系统级别变量,在任何环境下都能拿到)

  • PATH:保存当前工作的默认路径
  • PWD:当前所在的工作路径
  • 2、 位置变量(想要后续传参) 

    输入 ./3.sh /etc/passwd 123  456 内置变量

    $0:脚本文件名
    $1:传入脚本的第一个参数
    $2:传入脚本的第二个参数

    $9:$(10)(两位数以上)

    如下图所示,实际和c语言命令行参数实现功能相同。

    四、 $字符的用法
  • $#:传入参数的个数会比实际少一个
  • $#:传入参数的个数
  • $?:上一句shell命令执行的结果()正确与否 $$:当前shell的PID(继承编号,表示正在运行的程序编码)
  • 脚本是弱类型语言;a=123(在脚本不需要写类型,脚本默认字符串),直接拉过来使用就好。
  • 1.shell脚本输入输出 read a (相当于scanf 接字符串)

    echo 得空'$a' 单引原样输出,全部当作常量看,照着输出

    “ aaa,bbb,$a (如果有变量进行替换) ”

    a+b;

    2."":打印字符串,遇到$变量则打印变量中的值 '':打印字符串,遇到$变量依然打印$变量 ``:将中间的字符串按照命令打印

    将结果装入到``

    将结果放在这个a里面,也就是说所以命令行都可以放进去保存

    3、终端进行输入输出

    两个输入,不用逗号隔开,用空格

    1、变量名,写变量

    2、$a,读变量($相当于替换)

    如下图所示

    #bc (浮点数加减乘除)

    注意

    赋值号两边不能有空格

    运算符两边要加空格

    五、分支语句

    1、if 语句

    if[](条件写法)test (表达式)

    then

    fi(不加分号)

    2、if-else

    f 条件(数字,字符串,判断文件的类型)

    then 语句

    else 语句

    fi(结束语句,代表if的结束)

    3、if -elseif 

    if

    then

    elif []

    then

    else

    fi

    4、case 语句

    case $num in (默认字符串)

    9)语句

    ;;

    8|4|5|1)语句(同级别)

    ;;(相当于break)

    *)

    语句(default)

    ;;

    esac  

    六、循环语句

    1、循环语句 while [ 条件 ]

    do 语句 …

    done

    2、for i in 1 2 3 4 5 6

    do 左括号

    不需要i++

    done 右括号

    3、until 语句

    作者:就这样很好880

    物联沃分享整理
    物联沃-IOTWORD物联网 » Shell脚本编程技巧与优化指南

    发表回复