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")
}