Shell脚本的特点
完成复杂而强大的系统命令操作,但执行效率低、没有图形界面、无法操作底层硬件设备,只能依赖类UNIX平台
Shell脚本程序的基本结构
Bash是UNIX世界使用最为广泛的Shell,所以脚本文件应该以如下语句作为开头。
#!/bin/bash 这句代码声明了解释该脚本的程序,该声明不是必须的。但有两个作用,一是使用该声明后,就可以使用bash内建的指令,如变量声明、条件判断等高级特性,如果不使用该声明就只能使用命令的简单集合了;二是为了增强代码的健壮性,如果将没有声明的脚本一直到默认使用Csh的系统运行,系统会调用Csh来解释该脚本,这样可能会出现兼容性问题。
“#!”在Shell编程中被称为魔数。在魔数后应该指定一个运行该脚本的程序名的完整路径,必须注意的是,路径与程序名必须存在,否则运行脚本文件只会得到一个错误提示。由于脚本文件其实就是一些程序的自动运行,所以最简单的脚本就是罗列一些命令,每个命令占一行。在最后添加一句退出命令“exit”,这样就有了第一个简单的脚本文件。
#!/bin/bash
df >df_info
vi df_info
exit
Bash脚本文件应该以sh作为后缀。当然这并不是必须的,用户可以使用任意字符作为脚本文件的后缀。但出于兼容性方面的考虑,还是建议将脚本文件均以sh作为后缀。
Shell脚本程序的几种特殊字符
1.注释字符#
2.双引号“ 双引号可以强制Shell将一些特殊字符作为普通字符使用。
3.单引号‘ 与双引号类似买单其强制将所有特殊字符作为普通字符使用
。。。$ echo "$BASH" #使用带有双引号的命令来显示系统变量BASH的值
/bin/bash #使用双引号时,$BASH可以获得Bash的信息
。。。$ echo '$BASH' #使用带有单引号的命令试图显示系统变量的值
$BASH #如果使用单引号,则会将$BASH原样输出,因为单引号取消了$的特殊意义
4.转义字符\
- \n:新行
- \r:回车
- \t:tab键
- \v:垂直tab
- \a:报警,也就是系统蜂鸣器响一声
用户交互
1.输出提示信息
在Shell中,可以使用echo命令将文本信息输出至终端。用法示例如下:
echo ”hello world“
echo ”$BASH“
#或者也可不用双引号,直接显示,这两种显示方式是等效的
echo hello world
echo $BASH
使用这种方式有个缺陷,就是一次只能显示一行内容。如果要显示多行文本,使用echo命令就显得不够优雅。
Shell提供了一种更为方便的方法来显示多行文本,也是使用”<<”界定符。
#!/bin/bash
cat <<EOF #在“<<”操作符后跟的“EOF”是界定符,Shell将一直输出后面的文本,直到遇到“EOF”,界定符EOF可以是任意字符
hello linux!
hello Ubuntu!
goodbye Windows!
welcome to real world!
EOF #遇到“EOF”,输出结束
exit
2.获得用户输入
Shell脚本获得用户输入的函数是read
echo “please input a number:”
read user_in #读取用户输入,并存入名为user_in的变量中
echo “the number of you input is $user_in”
3.运行脚本的方法
编写完后,使用ls -l命令查看文件详情
添加运行权限,可以使用chmod命令,chmod u+x test.sh
运行脚本 ./test.sh
显示运行脚本 bash test.sh