shell脚本基础

转载请注明出处https://blog.csdn.net/weixin_45163516

shell

  • shell 是一个用c语言编写的程序,他是用户使用linux的桥梁,shell 即是一个命令语言。也是程序涉及

    语言,是一种服务器语言,

  • shell脚本:是一种shell编写的脚本程序

  • shell解析器类型:

    • ash,csh,ksh,bash,等
    • 查看可用的shell:cat /etc/shells
    • 查看当前的shell:echo $SHELL
  • shell脚本

    • 指定shell解释器执行当前的shell脚本

      • 创建一个1.sh文件,添加内容echo “hello shell”
      • 执行bash 1.sh, 脚本的权限不需要可执行的权限
    • 自解析的shell脚本

      • 创建一个2.sh,在开头加#! /bin/bash/,后面写shell的内容
      • 执行的时候会出现权限不够,chmod 0777 2.sh|chmod 0755 2.sh|chmod +x 2.sh
      • 执行./2.sh

变量的定义

  • 变量的定义:name=“xxxx”,= 两边不能有空格,
  • 打印变量:echo $name或者echo ${name}
  • 销毁变量:unset name,销毁以后,变量就不会再使用了
  • 定义常量:readonly pi=3.14,修改常量会报错

变量分类

  • 本地变量:只使用于本地当前脚本的变量

  • 环境变量:(重点)通常整个系统都都可以使用的变量叫环境变量,一般都是大写的

    • 查看系统的环境变量:env

    • 查看指定的环境变量:echo $PATH

    • 想要让一个脚本在哪里都可以执行,一般将脚本所在的目录,放到PATH

      • 临时:export PATH=$PATH:当前脚本脚本路径

      • 永久:

        • 系统:/etc/profile
        • 用户:在家目录下面,有一个.bashrc隐藏文件,
        • vim .bashrc 将 export PATH=$PATH:当前脚本脚本路径放在脚本的末尾即可
        • 让所有的文件都生效:source ~/.profile
  • 位置变量:

    • $0:表示脚本的名字
    • $1-9:表示传递给脚本的参数
    • $*:匹配到所有的参数
  • 特殊变量:

    • $#:传递给参数的个数
    • $?:上次执行命令的结果,0,代表成功, 错误会有对应的数字来表示

数值类型

  • 定义变量或者赋值,默认的都是普通的字符,即使你是数字或者运算符

  • 若想要进行运算的时候,前面需要加let

  • 示例:

    a=1
    let a=a+2
    echo $a
    

字符串类型

  • 单引号:字符都会保存原样,不会被解析
  • 双引号:其中的变量会被解析,特殊字符不会被解析($,“,\)
  • 反引号:其中的作为命令来执行
  • 长度的统计:echo ${#name}
  • 字符串的提取:echo ${name:2:3} 从下标为2的开始提取3个字符

数组类型

  • 定义:a=(1 2 3)
  • 成员访问:echo ${a[1]}
  • 所有成员:echo ${a[*]}
  • 个数统计:echo ${#a[@]}

各种运算

  • test:测试真假

    if test 1 -lt 2;then
    	echo "ok"
    fi
    
    
    
    
    if [ 1 -lt 2 ];then
    	echo "true"
    fi
    
    符号 说明
    -lt 小于
    -le 小于等于
    -gt 大于
    -ge 大于等于
    -eq 等于
    -ne 不等于
  • 逻辑判断

    符号 说明
    -a 逻辑与(and),也可以使用两个&&来代替
    -o 逻辑或(or),也可以使用两个||来代替
    逻辑非(not)

分支结构

  • if -elif-else-fi 看11.sh

  • case-in-esac 看12.sh

循环结构

  • for-in 及 for 看13.sh

  • while 看14.sh

  • 函数 看15.sh

你可能感兴趣的:(linux)