Appearance
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!!!"
变量的定义及使用
定义:
- 直接赋值:a=tmp,a是变量名,tmp是值,注意这种定义方式不可有空格
- 单引号赋值:a='Hello World',这种方式可以有空格
- 双引号赋值:这种方式也可以有空格,同时会解析引号内的变量或执行命令。
使用:$变量名
删除:unset 变量名称
Shell数组
直接定义:每个元素使用空格分割,Shell 是弱类型的,数组中元素的类型可以不一样
shellarray1=(1 2 3 "hello Shell")
单元素定义:Shell 中数组下标从 0 开始,利用单个元素来定义数组。
shellarray2[0]=1 array2[1]=2 array2[2]="hello Shell"
获取单个元素:
${array1[0]}
获取全部元素:
${array1[*]}
或${array1[@]}
获取数组长度:
${#array1[*]}
或${#array1[@]}
修改单个元素:和单元素定义相同,
array2[0]=2
删除数组元素:
unset array1[3]
,删除对应下标的数组元素,如果不带下标则删除数组的全部元素数组截取:
${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 则为执行失败 |