Linux Shell 是 Linux 中提供的一种强大的脚本工具,通过编写脚本可实现一系列动作,本文将介绍 Shell 脚本的基本语法以及应用。
一、基础命令
1. 内容格式
Shell 脚本的定义相对简单,新建 .sh 文件并在文件中首行添加 #!/bin/bash 即可,文件中后续的内容一行即为一条命令,当执行文件时将会自顶向下开始执行命令。
#!/bin/bash
content
当完成脚本文件的定义之后,通过还需要为文件授权为可执行文件,命令如下:
# 创建脚本文件
touch <filename>.sh
# 授权文件为可执行
chmod +x <filename>.sh
2. 打印输出
在 Linux 中通过 echo 命令可执行内容的打印输出,默认其将直接输出到控制台,可以通过 > 或 >> 将其保存至指定文件中。
# 输出到控制台
echo "Hello World!"
在使用 > 或 >> 将其保存到文件时需要注意,前者将会覆盖文件中原有的数据内容,后 >> 则是继续将内容添加到文件末端。
# 输出到文件,覆盖原内容
echo "Hello World!" > info.log
# 输出到文件,追加到文件末端
echo "Hello World!" >> info.log
3. 变量管理
Shell 中存在两种方式的变量定义获取方式,下面分开进行介绍。
(1) ${}
通过 ${} 即可读取已定义的变量信息,如下示例即通过 ${msg} 读取已经定义的 msg 变量。
msg = "Hello World!"
echo ${msg}
同时也可以直接通过 $ 读取变量,上述的读取也可替换为 $msg 但此方式不便于规范变量名从而造成歧义。
例如下述例子中,变量 $msg 输出即存在多种可能结果,既有可能为 Hellog 也有可能为 World。
ms = "Hello"
msg = "World"
echo $msg
(2) $()
通过 $() 获取命令执行的结果,如下述示例通过 $(pwd) 读取 pwd 命令的执行结果。
echo $(pwd)
4. 执行参数
在 Shell 中通过 $数字 接收脚本执行时的参数。
例如在下述示例中 $0 即为 test.sh,而 $1 为 params。
sh test.sh params
二、语法介绍
1. IF条件
在 Shell 脚本中,条件判断 IF 的基本语法格式如下,其中通过 fi 标记结束,需要注意的是 if 和 [ 以及条件 command 执行相隔的空格不能缺省。
if [ command ]; then
march_command_1
else
march_command_2
fi
当存在多分支时,其语法格式如下,通过 elif 判断多分支。
if [ command ]; then
march_command_1
elif [ command ]; then
march_command_2
else
march_command_3
fi
2. Switch
Shell 脚本中的 switch case 语句规则如下:
case开头,以esac结尾;;;作用等价于break;*等价于default;exit等价于return;
下面通过一个具体的示例讲解:
#!/bin/bash
method_1() {
echo "Hello"
}
method_2() {
echo "World"
}
case "$1" in
p1)
method_1
;;
p2)
method_2
;;
*)
echo "default branch"
exit 1
;;
esac
为了更好的对比,将上述 Shell 逻辑转为 Java 代码:
public void demo(String params) {
swtich (params) {
case "p1":
method1();
break;
case "p2":
method2();
break;
default:
System.out.println("default branch")
return;
}
}
public void method1() {
System.out.println("Hello")
}
public void method2() {
System.out.println("World")
}