#
注释:
行首以#
开头(除#!
之外)的是注释。#!是用于指定当前脚本的解释器,我们这里为bash
,且应该指明完整路径,所以为/bin/bash
,bash并不是只有一种,还有zsh
,例如:#! /bin/zsh
例如:
#!/bin/bash
echo "The # here does not begin a comment."
echo 'The # here does not begin a comment.'
echo The
echo The
echo $(( 2
运行:bash test.sh
结果为:
The
The
The
The
43
;
分号:
使用分号;
可以在同一行上写两个或两个以上的命令。
例如:
#!/bin/bash
echo hello; echo there
filename=ttt.sh
if [ -e "$filename" ]; then
echo "File $filename exists."; cp $filename $filename.bak
else
echo "File $filename not found."; touch $filename
fi; echo "File test complete."
输出为:
hello
there
File ttt.sh not found.
File test complete.
解释说明
上面脚本使用了一个if件分支判断一个文件是否存在,如果文件存在打印相关信息并将该文件备份;如果不存在打印相关信息并创建一个新的文件。最后将输出”测试完成”。
使用双分号;;
可以终止case选项。
#!/bin/bash
varname=b
case "$varname" in
[a-z]) echo "abc";;
[0-9]) echo "123";;
esac
输出:
abc
解释说明
上面脚本使用case语句,首先创建了一个变量初始化为b,然后使用case语句判断该变量的范围,并打印相关信息。如果你有其它编程语言的经验,这将很容易理解。
点号.
:等价于 source
命令
bash 中的 source 命令用于在当前 bash 环境下读取并执行 FileName.sh 中的命令。
$ source test.sh
Hello World
$ . test.sh
Hello World
双引号"
“STRING” 将会阻止(解释)STRING中大部分特殊的字符。后面的实验会详细说明。
单引号'
‘STRING’ 将会阻止STRING中所有特殊字符的解释,这是一种比使用”更强烈的形式。后面的实验会详细说明。
斜线和反斜线
斜线/
:
文件名路径分隔符。分隔文件名不同的部分(如/home/bozo/projects/Makefile
)。也可以用来作为除法算术操作符。注意在linux中表示路径的时候,许多个/
跟一个/
是一样的。/home/shiyanlou
等同于////home///shiyanlou
反斜线
一种对单字符的引用机制。X 将会“转义”字符X。这等价于”X”,也等价于’X’。 通常用来转义双引号(”)和单引号(’),这样双引号和单引号就不会被解释成特殊含义了。
- 符号 说明
- n 表示新的一行
- r 表示回车
- t 表示水平制表符
- v 表示垂直制表符
- b 表示后退符
- a 表示”alert”(蜂鸣或者闪烁)