linux学习day3——shell脚本

shell语法

  • 概论
  • 注释
  • 变量
  • 默认变量
  • 数组
  • expr命令
  • read命令
  • echo命令
  • printf命令
  • test命令与判断符号[]
  • 判断语句
  • 循环语句
  • 函数
  • exit命令
  • 文件重定向
  • 引入外部脚本

1.shell语法——概论

概论

shell是我们通过命令行与操作系统沟通的语言。

shell脚本可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复用。
AC Terminal中的命令行可以看成是一个“shell脚本在逐行执行”。

注:AC Terminal相当于linux,命令行终端。

Linux中常见的shell脚本有很多种,常见的有:

Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
zsh
…

Linux系统中一般默认使用bash,所以接下来讲解bash中的语法。
文件开头需要写#! /bin/bash,指明bash为脚本解释器。


学习技巧

不要死记硬背,遇到含糊不清的地方,可以在AC Terminal里实际运行一遍。

脚本示例

新建一个test.sh文件,内容如下:

#! /bin/bash
echo "Hello World!"

###运行方式 作为可执行文件
acs@9e0ebfcd82d7:~$ chmod +x test.sh  # 使脚本具有可执行权限
acs@9e0ebfcd82d7:~$ ./test.sh  # 当前路径下执行
Hello World!  # 脚本输出
acs@9e0ebfcd82d7:~$ /home/acs/test.sh  # 绝对路径下执行
Hello World!  # 脚本输出
acs@9e0ebfcd82d7:~$ ~/test.sh  # 家目录路径下执行
Hello World!  # 脚本输出

用解释器执行

acs@9e0ebfcd82d7:~$ bash test.sh
Hello World!  # 脚本输出

2.shell语法——注释

单行注释

每行中#之后的内容均是注释。

# 这是一行注释

echo 'Hello World'  #  这也是注释

多行注释

格式:

:<<EOF
第一行注释
第二行注释
第三行注释
EOF

其中EOF可以换成其它任意字符串。例如:

:<<abc
第一行注释
第二行注释
第三行注释
abc

:<<!
第一行注释
第二行注释
第三行注释
!

作者:yxc
链接:https://www.acwing.com/blog/content/9688/
来源:AcWing