从本节开始,代码块中,紧接着的下一行的注释表示上一行命令的输出。
输入:命令
输出:#命令的结果
ps: 学业繁忙,咕了好久的第二讲笔记终于在国庆写完了,第三讲可能要到寒假了。
shell脚本
shell脚本是复杂度更高的工具,在本节中,我们使用bash
脚本,因为它最流行。
给变量赋值
foo=bar #foo是变量,bar是值
echo $foo
# bar
注意!=
两边不能有空格!因为在shell脚本中,空格的作用是分割参数。
假如你foo = bar
,解释器会将foo
视为命令,=
和bar
视为它的参数,接着报错:Command 'foo' not found
。
所以,如果文件名带有空格,我们要把它们用引号括起来。
两种定义字符串的方式
在bash中,'
和"
是不一样的。
'
是原始字符串,它会把它引起来的文字原原本本地输出,而不会去识别其中的转义字符。
既然,'
不会去转义,那么"
就是识别转义的引号了。
foo=barrr
echo $foo
#barrr
echo '$foo'
# $foo
echo "$foo"
# barrr
函数
创建一个mcd.sh的文件,vim mcd.sh
里面写上:
mcd(){
mkdir -p "$1" # $1代表第一个参数
cd "$1"
}
接着保存退出
source mcd.sh
mcd 'hello world' #这样就会创建并进入一个名为'hello world'的文件夹
#ps:如果传入多个参数,会出现一些奇奇怪怪的情况
常用变量
$0
- 脚本名$1
~$9
- 传入的参数,$1
为第一个,类推$@
- 所有参数$#
- 参数个数$?
- 前一个命令的返回值$$
- 当前脚本的