Skip to content

Shell是一种脚本语言,又是一种命令语言。可以通俗一点来讲,Shell脚本就是一系列命令的集合,可以在Unix/linux上面直接使用,也可以写一些常用的小工具,小脚本来实现想要的功能,实现自动化运维。

HelloWord

第一行是解释器这是必不可少的,后面#开头的都是注释信息,一般为作者信息,echo是输出语句

shell
#!/bin/env bash
# Description: /mybin/myvim scripts
# Auth: CV大魔王
# Email: 199301983@qq.com
# Date: 2022-08-08 13:36
# Version: 1.0
echo "HelloWord!!!"

变量的定义及使用

定义:

  1. 直接赋值:a=tmp,a是变量名,tmp是值,注意这种定义方式不可有空格
  2. 单引号赋值:a='Hello World',这种方式可以有空格
  3. 双引号赋值:这种方式也可以有空格,同时会解析引号内的变量或执行命令。

使用:$变量名

删除:unset 变量名称

Shell数组

  1. 直接定义:每个元素使用空格分割,Shell 是弱类型的,数组中元素的类型可以不一样

    shell
    array1=(1 2 3 "hello Shell")
  2. 单元素定义:Shell 中数组下标从 0 开始,利用单个元素来定义数组。

    shell
    array2[0]=1
    array2[1]=2
    array2[2]="hello Shell"
  3. 获取单个元素:${array1[0]}

  4. 获取全部元素:${array1[*]}${array1[@]}

  5. 获取数组长度:${#array1[*]}${#array1[@]}

  6. 修改单个元素:和单元素定义相同,array2[0]=2

  7. 删除数组元素:unset array1[3],删除对应下标的数组元素,如果不带下标则删除数组的全部元素

  8. 数组截取:${array1[*]:0:2},从第1个元素往后2个元素进行截取

Shell函数

函数的定义如下:function 可以省略,下面是标准写法

shell
function 函数名() {
	// 你的逻辑
	echo "当前用户为:$USER"
	return 0
}

调用函数

shell
函数名 参数1 参数2 参数3

函数获取参数

shell
function f1() {
        echo "函数的第一个参数为: ${1}"
        echo "函数的第二个参数为: ${2}"
        echo "函数的第三个参数为: ${3}"
}
# 调用函数
f1 1 2 3

特殊参数

在 Shell 中也存在特殊含义的参数如下表:

变量含义
$#传递给函数的参数个数总和
$*传递给脚本或函数的所有参数,当被双引号 " " 包含时,所有的位置参数被看做一个字符串
$@传递给脚本或函数的所有参数,当被双引号 " " 包含时,每个位置参数被看做独立的字符串
$?$? 表示函数的退出状态,返回为 0 为执行成功,非 0 则为执行失败