Shell脚本编写中的语法

Shell脚本可以自动化的执行一连串的指令或者程序,可以极大的提高我们的工作时的效率。下面我将举例一些常见的Shell脚本语法。

Shell脚本的构成

Shell脚本通常以 .sh 为后缀,其与windows的批处理一样,本质是一个文件。

在编写Shell脚本的时候,需要在文件的第一行注明需要使用的解析器,比如:

 #!/bin/bash

Shell脚本的运行

想要运行Shell脚本,可以使用如下三种语句:

./shell_name.sh        # 按照脚本中#!指定的解析器进行解析
bash shell_name.sh     # 指定优先的解析器为bash
.shell_name.sh         # 直接使用默认的解析器
shell_name

Shell脚本的语法

注释

Shell脚本中的单行注释由# 开头

STDOUT

在Shell脚本中使用标准化输出,可以使用echo指令

变量

在Shell脚本中,定义变量的方式如下

 变量名=值

其中,值得注意的是,变量名,= 以及变量的值之间不能含有空格,否则会造成解析错误。

 

其变量也具备如下的性质:变量没有类型之分,所有变量都默认为 String 类型。因此 myage=18 和 myage=”18″ 在作用上是没有什么区别的。

如果想使用所定义的变量,可以参考以下两种方式:

  1. $变量名
  2. ${变量名}

这两种方式的区别为,使用花括号 {} 可以界定变量名的范围。当程序在解析的时候,所解析的变量名只会是 {} 里面的部分。

拓展计算

在Shell脚本中,想要进行一定的数学运算,就可以使用 (( )) 运算符,该运算符中可以使用任何符合C语言标准的语句。

需要注意的是,Shell只能处理整形数据的运算,所以在Shell中进行的浮点数运算是一String的形式来进行的。

多语句同行

如果要把多条语句放在同一行,则每个语句都应该由 ; 来分开。

一语句多行

如果要把一条语句写在多行,则需要在换行处用 \ 来分割。

for循环

其基本格式为

# 方式1
for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

# 方式2
for((i=1;i<=5;i++))
do
{
    echo $i
}
done

if 语句

其基本格式为

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

并行执行

想要利用好多线程硬件,提高执行效率,则可以使用并行执行的运算符:&

 # 并行执行三个py脚本
python test1.py&
python test2.py&
python test3.py

等待

若一个进程依赖于另一个进程的结果,则可以用等待语句:wait

# 执行完test1之后再执行test2
python test1.py
wait
python test2.p

暂停

sleep命令可以将一个命令暂停一段时间

# 运行test1后等待10s再运行test2
python test1.py
sleep 10
python test2.py

 

 

 

上一篇
下一篇