Shell 脚本入门

Shell 脚本是底层用 C 语言实现的程序,它的初衷是方便使用者调用 Linux 操作系统,可以看做是基于 Linux 操作系统的一种软件。现在的服务器基本都是基于 Linux 的定制化,使用 shell 脚本可以方便地使用服务器的各种资源。现在的 MacOS 初始化时,自带 shell 脚本解释器。 Windows 系统下,需要手动安装。下面我基于 MacOS , 在 sublime3 编辑器下, 简要记录下 shell 的基本语法。

1 Hello World

打开 teminal ,在桌面目录 cd ~/Desktoptouch test.sh 创建 test.sh 文件。使用 sublime3 打开文件,输入如下内容:

#!/bin/bash

echo "Hello World !"

保存后,在 teminal 输入 sh test.sh, 就能看到 Hell0 World 的输出。文件的第一行指明了 shell 解释器所在的位置,输入 which sh,能够查到本地 shell 解释器所在的位置。

2 基本类型

shell 中定义整数、浮点数和字符串等基本类型:

a=10
str1="abc"
str2="cde"
echo "a: ${a}\nstr1: ${str1}\nstr2: ${str2}"

需要注意=两边不能有空格,定义比较严格。引用变量的方式采用 ${var} 的方式。
数组的定义和引用方式:

arr=(1 2 3)

echo "引用个别元素arr[0]: ${arr[0]} 
     \n引用全部元素arr: ${arr[*]}
     \n引用数组长度arr.length: ${#arr[*]}"
3 函数

shell 定义函数很简单:

function_name(){
    arr=(1 2 3)

    echo "引用个别元素arr[0]: ${arr[0]} 
     \n引用全部元素arr: ${arr[*]}
     \n引用数组长度arr.length: ${#arr[*]}"
}

function_name

调用函数时,传递的参数通过空格分隔,引用通过 $数字 匹配传递的参数:

function_test(){
    echo "第一个参数: $1 \
         \n第二个参数: $2"
}

function_test 1 2 

通过 $? ,获取函数返回值:

function_re(){
    return 2
}
function_re
a=$?
echo "${a}"
4 比较运算符

4.1 整数比较

符号 含义
== 等于
!= 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于

使用:

a=1
b=2

if [[ ${a} == ${b} ]]; then
    echo "等于"
elif [[ ${a} -lt ${b} ]]; then
    echo "小于"
elif [[ ${a} -gt ${b} ]]; then
    echo "大于"
fi

4.2 字符串比较

string="abcd"
echo ${#string} #输出 4
echo ${string:0:2} #ab
if [[ ${string} =~ "ab3" ]]; then
    echo "包含"
else
    echo "不包含"
fi
5 读取输入

read -p 命令获取命令行输入:

 read   -p  "please input your name: " first last
 echo "Hello $first.$last"

通过参数 -n 个数 可以控制读取的字符个数:

 read -n 1 -p "input only one char: " a
 echo "\nread ${a}"

以上命令,基本能够满足简单日常的脚本使用。 shell 语法比较简单,有些地方也比较怪异,有疑问时,可以通过 man sh 查看 Mac 自带帮助。

喜欢和关注都是对我的鼓励和支持~

你可能感兴趣的:(Shell 脚本入门)