任 务 命 令
3.1 脚 本 配 置
3.1.1 Shell脚本
Shell是用C语言编写的程序,它是用户使用Linux内核的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell应用程序提供了一个界面,用户通过这个界面可以访问操作内核的服务。关于Shell的讲解视频可扫描二维码观看。
Shell脚本(Shell Script)是一种为Shell编写的脚本程序。业界所说的Shell通常是指Shell脚本,但Shell和Shell Script是两个不同的概念。
Shell编程跟Java、PHP编程一样,只需要一个能编写代码的文本编辑器和一个能解释执行的脚本解释器。
Linux的Shell种类众多,常见的有:
* Bourne Shell(/usr/bin/sh或/bin/sh)
* Bourne Again Shell(/bin/bash)
* C Shell(/usr/bin/csh)
* K Shell(/usr/bin/ksh)
* Shell for Root(/sbin/sh)
…
3.1.2 Shell变量
关于Shell变量的讲解视频可扫描二维码观看。
Linux的Shell编程是一种非常成熟的编程语言,它支持各种类型的变量。有三种主要的变量类型:环境变量、局部变量和Shell变量。
环境变量:所有的程序,包括Shell启动程序,都能访问环境变量。有些程序需要环境变量来保证其正常运行,必要的时候Shell脚本也可以自定义环境变量。
局部变量:局部变量是在脚本或命令中定义,仅在当前Shell实例中有效,其他Shell程序不能访问的局部变量。
Shell变量:Shell变量是由Shell程序设置的特殊变量。Shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了Shell的正常运行。
Shell编程和其他编程语言的主要不同之处是:在Shell编程中,变量是非类型性质的,不必指定变量是数字类型还是字符串类型。
1.局部变量
Shell编程中,使用局部变量无须事先声明,同时变量名的命名须遵循如下规则:
* **字符必须为字母(a~z,A~Z)。
* 中间不能有空格,可以使用下画线(_)。
* 不能使用标点符号。
* 不能使用bash中的关键字(可以用help命令查看保留关键字)。
2.局部变量赋值
变量赋值的格式:
变量名=值
访问变量值:取用一个变量的值,只需在变量名前面加一个$。
示例如下:
#!/bin/bash
# 对变量赋值:
a="hello world" #等号两边均不能有空格存在
# 打印变量a的值:
echo -e "A is: $a\n"
备注:bash中变量赋值,等号两边均不能有空格存在。
可以使用自己喜欢的编辑器,输入上述内容,并保存为文件test_hello.bsh,然后执�� chmod +x test_hello.bsh使其具有执行权限,*后输入“./test_hello”或“bash test_hello.bsh”执行该脚本。
程序运行结果:
A is: hello world
有时候变量名可能会和其他文字混淆,例如:
num=1
echo "this is the $numst"
上述脚本并不会输出"this is the 1st"而是"this is the ",这是由于Shell会去搜索变量 numst的值,而实际上这个变量并未赋值,可以用大括号来告诉 Shell 把 num 变量跟其他部分 分开。num=1
echo "this is the ${num}st"
程序运行结果:
this is the 1st
3.1.3 Shell传递参数
关于Shell传递参数的讲解视频可扫描二维码观看。
1.普通字符
可以在执行Shell脚本时,向脚本传递参数,脚本内获取参数的格式为$n。n代表一个数据,n=1为执行脚本的**个参数,n=2为执行脚本的第二个参数,以此类推。
示例如下:以下代码向脚本传递三个参数,并分别输出。
#!/bin/bash
echo “Shell传递参数实例!”;
echo “**个参数为$1”;
echo “第二个参数为$2”;
echo “第三个参数为$3”;
为脚本设置可执行权限后,并执行脚本,输出结果如下所示:
[root@localhost ~]# chmod u+x test.sh
[root@localhost ~]# ./test.sh 1 8 89
打印结果:
Shell传递参数实例!
**个参数为:1
第二个参数为:8
第三个参数为:89
……