02月1日, 2023
1.谁需要学习 Shell 编程?
1.Linux运维工程师:编写Shell程序进行服务集群管理。
2.Python和JavaEE程序员:编写Shell脚本程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。
3.大数据程序员:编写Shell程序来管理集群。
2.什么是shell编程
Shell 是一个命令解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。
3.shell编程特点
(1) Shell脚本支持变量、命令行参数、交 互式输入、函数模块、各种控制语句等高级编 程语言的特性。
(2)利用shell可以编写出功能非常复杂的脚 本程序,把大量的任务自动化,尤其是那些需 要输入大量命令而在执行过程中不太需要与用 户进行干预的系统管理任务。
(3)与可执行命令不同,shell脚本并不是二 进制可执行文件,而是以文本方式保存,由 shell进行解析执行的,不需要对代码进行编译。
本质上,shell 脚本(shell编程)是命令行 命令简单的组合到一个文件里面。Shell基本上 是一个命令解释器,它接收用户命令,然后调用相应的应用程序。
4.Shell程序创建
进入 Linux 终端,编写一个 Shell 脚本 HelloWord.sh :
#!/bin/bash
echo 'hello world!'
chmod +x hello.sh
./HelloWorld.sh
终端打印出 hello world!
说明:
#! 告诉系统这个脚本需要什么解释器来执行。
文件扩展名 .sh 不是强制要求的。
5.函数定义
#!/bin/bash
#filename:welcome
first()
{
echo "===================================="
echo "Hello! Everyone! Welcome to the Linux world."
echo "===================================="
}
second()
{
echo "**********************************************"
}
first
second
Second
first
1.编写程序 2.添加执行权限 3.运行程
创建完/root/welcome文件后,使用如下命令执 行Shell程序
6.Shell程序的执行
执行Shell程序有如下3种方法:
(1)通过bash命令: bash [Shell程序文件名]
(2)通过输入重定向 bash< [Shell程序名]
(3)添加执行权限 chmod u+x shell程序名 程序名路径##.Shell 变量
7.变量定义
Shell 变量分为系统变量和自定义变量。系统变量有H O M E 、 HOME、HOME、PWD、$USER等,显示当前 Shell 中所有变量:set 。
变量名可以由字母、数字、下划线组成,不能以数字开头。
基本语法
定义变量:变量名=变量值,等号两侧不能有空格,变量名一般习惯用大写。
删除变量:unset 变量名 。 声明静态变量:readonly
变量名,静态变量不能unset。 使用变量:$变量名
将命令返回值赋给变量(重点)
A=ls 反引号,执行里面的命令
A=$(ls) 等价于反引号
8.常用的字符串比较符号如下:
=:两个字符串是否相同,相同则为“是”。
!=:两个字符串是否不同,不同则为“是”
-n:字符串的长度是否大于0,大于0则为“是”
-z:字符串的长度是否等于0,如果等于0则为“是”
9.常用的数字比较符号如下:
-eq:两个数值相等
-ge:第一个数大于等于第二个数
-le:第一个数小于等于第二个数
-ne:两个数值不相等
-gt:第一个数大于第二个数
-lt:第一个数小于第二个数
9.shell脚本支持的控制结构:
if-then-else
•case
•for
•while
•until
if-then-else实例
使用if-then-else语句创建一个根据输入 的分数判断分数是否及格的Shell程序。
#! /bin/bash
#filename:score
echo -n "please input a score:"
read SCORE
echo "You input Score is $SCORE"
if [ $SCORE -ge 60 ];
then
echo -n "Congratulation!You Pass the examination。"
else
echo -n "Sorry !You Fail the examination!"