【转载请注明出处】
作者:DrkCore
原文:https://blog.youkuaiyun.com/DrkCore/article/details/99710828
笔者第一次接触 Linux 操作系统还是在大学时代,当虚拟机显示出 Ubuntu 的标识的那一刻笔者才知道原来操作系统并不是只有 Windows,可惜之后一直没能好好研究这个系统,直到随着工作的变动这才有了机会领略一番 Linux 的命令行和 Shell 脚本的威力。
MaxOS 和 Linux 都是类 Unix 系统所以 Shell 脚本的语法都能兼容,而 Windows 阵营在微软于 Win10 上推出 WSL(Windows Subsystem for Linux)之后也能使用 Shell 的语法。对于普通的开发者来说 WSL 提供的 Linux 功能堪称完美,在其上编译 APK 毫无问题。
工作中笔者主要使用的系统是 Linux Mint,这个系统对新手十分友好,如果你是刚刚从 Windows 系统转过来的话可能还会对它的界面和交互模式有种莫名的熟悉感,推荐刚接触 Linux 的读者安装使用。
好了,让我们进入正文,聊一聊如何入门 Shell 脚本的编写吧!
Hello World
#!/bin/bash
# 该脚本执行后将会输出 Hello World
echo "Hello Word"
将这段代码另存为 helloworld.sh 文件,并如下执行命令:
$ chmod +x helloworld.sh
$ ./helloworld.sh
HelloWorld
可以看到脚本成功输出了我们想要的 Hello World
。
Shell 脚本中比较基础的知识点如下:
- 开头的
#!
语法用于标注脚本的解释器,本例中解释器是bash
,不指定解释器则由运行环境决定 - 使用
#
作为注释的开头 chmod +x 文件名
命令用于授予文件执行权限,没有执行权限就尝试运行会抛出Permission denied
异常echo
命令常用于输出日志- 绝大多数命令直接加
-h
或者--help
就能看到使用说明 - 敲命令行的时候可以使用
TAB
键来补全部分命令
变量
#!/bin/bash
# 基本上 Shell 能用的变量类型就时数字、字符串和数组了
var_num=123
var_str="MyName"
# 数组申明时,元素之间使用空格来间隔,而不是常见的逗号
var_array=(1 2 3)
echo "var_num is ${var_num}"
echo "var_str is ${var_str}"
# 截取字符串,表示从下标 1 个开始截取 3 个字符
echo "${var_str:1:3}"
# 字符串长度
echo "the length of the string is ${#var_str}"
# 字符串拼接,类似 Kotlin
var_str="num is ${var_num} and str is ${var_str}"
echo "${var_str}"
# 需要注意的是,如果你使用了单引号的话用 ${var_num} 来引用变量将是无效的
var_str='the num is ${var_num}'
echo "${var_str}"
# 数组操作
echo "var_array is ${var_array[*]}"
echo "v1 is ${var_array[1]}"
echo "the length of var_array is ${#var_array[@]}"
# 数学计算
let a=5+4
let b=a-3
echo $a $b
- 变量名限制和大多数编程语言类似
- 变量名和等号之间不能有空格
- 使用
${var}
的格式来引用变量 - 使用
let
命令可以进行数字的计算,在let
命令的表达式中不需要使用${var}
格式来引用变量
流程控制
#!/usr/bin/env bash