1、在创建shell脚本时,必须在文件的第一行指定要使用的shell,格式如下:
#!/bin/shell
通常#用来注释,但第一行是一个例外
2、运行脚本有两种方法
(1)将shell脚本文件所处目录添加到path环境变量中;
(2)在提示符中用绝对路径或者相对路径来应用shell脚本文件。
另外创建好了的shell脚本,需要有执行权限,否则也运行不了。
3、显示消息
用echo 后面跟字符串,该命令就能显示出这个文本字符串了
例 echo this is a test
在echo中出现了引号,需要在文本中用一种引号,然后用另外一种将字符串划定起来
4、使用变量
(1)环境变量
在环境变量前面加上$来使用这些环境变量。
echo HOME:$HOME
(2)用户变量
用户变量由字符串、下划线和数字组成,长度不超过20个,区分大小写。
引用一个变量值时需要用$。
5、命令替换
有两种方法可以将命令输出结果赋给变量
(1)反引号字符
testing=·date·
(2)$()格式
testing=$(date)
6、重定向输入和输出
(1)输出重定向
最基本的重定向将命令输出结果发送到一个文件中。bash shell 用>来完成这项功能
command > outputfile
date > test
重定向操作符会用新的文件数据覆盖已有文件,如果不想覆盖,想要追加到文件后面,可以用双大于号>>来追加数据
date >>test
(2)输入重定向
输入重定向的符号是小于号<,输入重定向将文件的内容重定向到命令
command < inputfile
wc < test
这里介绍一下wc命令,wc命令可以对数据中的文本进行技术,默认情况下它会输出三个值,文本的行数、文本的次数和文本的字节数。
内联输入重定向:使用<<,必须制定一个文本标记来划分输入数据的开始和结尾。任何字符串都可作为文本标记,但在数据的开始和接吻文本标记必须一致。
格式如下:
command << marker
data
marker
实例:
wc << EOF
nnnnn
nnnn
nn
EOF
7、管道
将一个命令的输出作为另一个命令的输入,可以用重定向来实现,但是有些笨拙,管道连接可以很方便实现
command1 | command2
Linux系统实际上会同时运行这两个命令,在系统内部将他们连接起来。在第一个命令产生输出的同时,输出会被立即送到第二个命令。数据传输不会用到任何中间文件或缓冲区
例 rmp -qa | sort | more
8、执行数学运算
expr命令允许在命令行上处理数学表达式,expr 1 + 5
9、使用方括号
在bash中,在将一个数学运算结果赋给某个变量是,可以用美元符和方括号($[operation])将表达式围起来
var1=$[expr 1 + 5]