第三章 Linux shell 概论和注释
$\quad $本篇文章记录学习 Acwing Linux 工程课的 Shell 语法。大部分参考了 y 总的语法,同样个人也对其进行了补充说明(不是纯纯的搬运)。
1、概论
简要介绍
shell是我们通过命令行与操作系统沟通的语言。和python一样,是解释型语言。
shell脚本可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复用。
AC Terminal中的命令行可以看成是一个“shell脚本在逐行执行”。
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为脚本解释器。
运行方式
bash脚本的运行方式主要分为三种
前两种:
bash < 脚本名称 # 该种方法无参
bash 脚本名 [参数]
第三种需要脚本权限设置为可执行。该方法最为常见,倘若该脚本文件位于 /bin, /usr/bin 等命令搜索路径的目录下,那么就相当于我们组合出了新的命令!(需要管理员sudo 才可以在 /bin/中写文件)
chomod a+x 脚本名
./脚本名 [参数]
2、注释
单行注释
每行中 # 之后的内容均是注释。
# 这是一行注释
echo 'Hello World' # 这也是注释
多行注释
其实 linux shell 中没有多行注释。 但是可以通过临时文件定向符拼凑出多行注释的功能。
临时文件定向符,允许把 shell 程序的输入行重新定向到一个命令,形式为:
命令 [参数] << 标记符
输入行
...
标记符
标记符可以是任何明显识别的符号,如 !!、%等等。标记符之间的若干输出重定向到命令的输入。
:<<abc
第一行注释
第二行注释
第三行注释
abc
:<<!
第一行注释
第二行注释
第三行注释
!
借助 :
命令,就可以实现多行注释啦。 (:
命令是空命令)