1. shell 的文件头
在创建shell脚本文件时,必须在shell脚本文件的第一行需要指定要使用的shell。不过即使遗漏了这个注释头脚本依旧可以执行,脚本注释头其格式为:
#!/bin/bash
在通常的shell脚本中,井号( # )用作注释行。shell并不会处理shell脚本中的注释行。然而,shell脚本文件的第一行是个例外, # 后面的惊叹号会告诉shell用哪个shell来运行脚本。
2. shell 显示输出信息
与其他的编程语言一样大多数shell命令都会产生自己的输出,这些输出会显示在脚本所运行的控制台显示器上。很多时候,你可能想要添加自己的文本消息来告诉脚本用户脚本正在做什么。在 shell 脚本中可以使用
echo
来输出信息。默认情况下,不需要使用引号将要显示的文本字符串划定出来,例如echo Hello, World!
怎么输出特殊符号 :
美元符号在shell中用于获取变量值,这一点类似于C语言中的去指针运算符
*
,要显示美元符,你必须在它前面放置一个**反斜线\
**用于字符的转义,例如echo "\$15"
。
注意:还有一种 ${variable} 形式引用的变量。变量名两侧额外的花括号通常用来帮助 shell 识别美元符后的变量名。
3. 重定向输入和输出
有些时候你想要保存某个命令的输出而不仅仅只是让它显示在显示器上。bash shell提供了几个操作符,可以将命令的输出重定向到另一个位置(比如文件)。重定向可以用于输入,也可以用于输出,可以将文件重定向到命令输入。
3.1. 输出重定向
最基本的重定向将命令的输出发送到一个文件中。bash shell用大于号
>
来完成这项功能。
输出重定向符号>
command > outputfile
例如echo "hello" > ./test.txt
将字符串输出到文件 text
3.2. 输入重定向
输入重定向和输出重定向正好相反。输入重定向将文件的内容重定向到命令,bash shell用大于号
<
来完成这项功能。
输入重定向符号<
command < inputfile
例如$ ls < ./test.txt
将 text 文件中的目录字符串读出并赋值给命令ls
4. 管道
有时需要将一个命令的输出作为另一个命令的输入。我们用不着将命令输出重定向到文件中,可以将其直接重定向到另一个命令。这个过程叫作管道连接(piping)。当在两个命令之间设置管道时,管道符|左边命令的输出就变成了右边命令的输入。只要第一个命令向标准输出写入,而第二个命令是从标准输入读取,那么这两个命令就可以形成一个管道。大部分的 Linux 命令都可以用来形成管道。
管道运算符
|
command1 | command2
将 command1 输出作为command2的输入