我是靠谱客的博主 清新自行车,最近开发中收集的这篇文章主要介绍Shell编程一、基本介绍二、Shell脚本的执行方式三、变量四、运算符五、条件结构六、循环结构七、函数八、综合案例(数据库备份),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

一、基本介绍

二、Shell脚本的执行方式

2.1脚本格式要求

2.2Shell脚本的常用执行方式

三、变量

3.1基本介绍

3.2Shell变量的定义

3.2.1基本语法

3.2.2定义变量的规则

3.2.3将命令的返回值赋给变量

3.2.4案例

3.3设置环境变量

3.3.1基本语法

3.3.2案例

3.4位置参数变量

3.4.1基本介绍

3.4.2基本语法

3.4.3案例

3.5预定义变量

3.5.1基本介绍

3.5.2基本语法

3.5.3案例

四、运算符

4.1基本语法

4.2案例

五、条件结构

5.1单分支结构

5.1.1基本语法

5.1.2常用判断条件

5.1.3案例

5.2多分支结构

5.2.1基本语法

5.2.2案例

5.3case语句

5.3.1基本语法

5.3.2案例

5.4read读取控制台输入

5.4.1基本语法

5.4.2案例

六、循环结构

6.1for循环

6.1.1基本语法

6.1.2案例

6.2while循环

6.2.1基本语法

6.2.2案例

七、函数

7.1系统函数

7.2自定义函数

八、综合案例(数据库备份)


一、基本介绍

Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序。用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

Shell编程的用途:

  • 对于Linux运维工程师来说,编写Shell程序来进行服务器管理。
  • 对于JavaEE和Python程序员来说,编写Shell程序来进行服务器的维护或者定时备份数据库。
  • 对于大数据程序员来说,编写Shell程序来管理集群。

二、Shell脚本的执行方式

2.1脚本格式要求

  • 脚本以#!/bin/bash开头
  • 脚本需要有可执行权限(也不是一定要有)

2.2Shell脚本的常用执行方式

方式一:

  1. 给Shell脚本赋予可执行权限。
  2. 相对路径(如 ./hello.sh)或者绝对路径(如 /root/shcode/hello.sh)执行脚本。

方式二:

  • sh 相对路径(如 hello.sh)或者绝对路径(如 /root/shcode/hello.sh)执行脚本。

注意

  • 方式一需要给Shell添加可执行权限,方式二则不需要。

三、变量

3.1基本介绍

  • Linux Shell中的变量分为:系统变量和用户自定义变量。
  • 系统变量:$HOME、$PWD、$USER、$SHELL。如通过echo $HOME可以显示当前用户的家目录。
  • 显示当前Shell中所有变量:set

3.2Shell变量的定义

3.2.1基本语法

  • 定义变量:变量名=值
  • 撤销变量:unset 变量
  • 声明静态变量:readonly 变量(静态变量不能被撤销

3.2.2定义变量的规则

  • 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
  • 等号两侧不能有空格。
  • 变量名称一般习惯为大写。(规范)

3.2.3将命令的返回值赋给变量

  • A=`date`
  • A=$(date)

这两个例子都是将date命令运行的结果赋给变量A。注意:`为反引号。

3.2.4案例

3.3设置环境变量

3.3.1基本语法

  1. export 变量名=变量值(定义环境变量/全局变量)
  2. source 配置文件(让修改后的配置文件立即生效)
  3. echo $变量名(查询环境变量的值)

 

3.3.2案例

1.在/etc/profile文件中定义TOMCAT_HOME环境变量

2.让修改后的配置文件立即生效

3.查询环境变量的值

4.在另一个shell程序中使用TOMCAT_HOME环境变量

 

3.4位置参数变量

3.4.1基本介绍

当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用位置参数变量。

比如:./myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息。

3.4.2基本语法

位置参数变量功能描述
$nn为数字,$0代表命令本身,$1-$9代表第一个到第九个参数。十以上的参数需要用大括号包含,如${10}。
$*这个变量代表命令行中的所有参数,$*把所有的参数看成一个整体。
$@这个变量也代表命令行中的所有参数,不过$@把每个参数区分对待。
$#这个变量代表命令行中所有参数的个数。

3.4.3案例

编写一个shell脚本position.sh,在脚本中获取到命令行的各个参数信息。

 

3.5预定义变量

3.5.1基本介绍

预定义变量就是设计者事先已经定义好的变量,可以直接在shell脚本中使用。

3.5.2基本语法

预定义变量功能描述
$$当前进程的进程号(PID)。
$!

后台运行的最后一个进程的进程号(PID)。

$?最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来绝对),则证明上一个命令执行不正确。

3.5.3案例

 

四、运算符

4.1基本语法

  • $((运算式))
  • $[运算式]
  • expr m + n

注意

  • 这三种写法都会将运算的结果返回。
  • 第三种写法注意以下几点:
    • expr是expression(表达式)的缩写。
    • 运算符间要有空格。
    • 如果要将结果赋给变量,则使用反引号`xxx`或者$(xxx)。
    • 第三种写法的部分运算符有点特别:+  -  *  /  %  分别表示加 减 乘 除 取余。

4.2案例

五、条件结构

5.1单分支结构

5.1.1基本语法

if [ condition ]

then

        ...

fi

注意

  •  condition前后要有空格。
  • 判断条件非空即为真,为空即为假。(可用$?验证,0为true,>1为false).
  • [ condition ] && echo OK 条件满足,执行后面的语句

5.1.2常用判断条件

判断条件含义备注
=相等字符串比较
-lt小于(little)两个整数的比较
-le小于等于(little equal)
-eq等于(equal)
-gt大于(greater)
-ge大于等于(greater equal)
-ne不等于(not equal)
-r有读的权限按照文件权限进行判断

-w

有写的权限
-x有执行的权限
-f文件存在并且是一个常规的文件按照文件类型进行判断
-e文件存在
-d文件存在并且是一个目录

5.1.3案例

 

5.2多分支结构

5.2.1基本语法

if [ condition ]

then

        ...

elif [ condition ]

then

        ...

...

fi

5.2.2案例

请编写一个 shell程序,如果输入的参数,大于等于60,则输出及格了",如果小于60,则输出"不及格"。


5.3case语句

5.3.1基本语法

case $变量名 in

"值1")

        ... #如果变量的值等于1,则执行程序1

;;

"值2")

        ... #如果变量的值等于2,则执行程序2

;;

*)

        ... #如果变量的值不是以上的值,则执行此程序

;;

esac

5.3.2案例

当命令行参数是1时,输出"周一";是2时,就输出"周二"。其它情况输出"other"。

5.4read读取控制台输入

5.4.1基本语法

read 选项 变量

选项说明
-p指定读取时的提示符
-t  指定读取时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了
变量:指定读取时的变量名

5.4.2案例

 

六、循环结构

6.1for循环

6.1.1基本语法

语法1

for 变量 in 值1 值2 值3

do

        ...

done

语法2

for(( 初始值;循环控制条件;变量变化 ))

do

        ...

done

6.1.2案例

 

6.2while循环

6.2.1基本语法

while [ condition ]

do

        ...

done

6.2.2案例

七、函数

7.1系统函数

语法说明
basename [选项] 参数用于打印目录或者文件的基本名称,显示最后的目录名或文件名
dirname [选项] 参数去除文件名的非目录部分,删除最后一个“”后面的路径,显示父目录

案例

7.2自定义函数

基本语法 

定义函数

[function] 函数名[()]

{

        ...;

        [return int];

}

调用函数

函数名 [值]

案例

八、综合案例(数据库备份)

 

 

最后

以上就是清新自行车为你收集整理的Shell编程一、基本介绍二、Shell脚本的执行方式三、变量四、运算符五、条件结构六、循环结构七、函数八、综合案例(数据库备份)的全部内容,希望文章能够帮你解决Shell编程一、基本介绍二、Shell脚本的执行方式三、变量四、运算符五、条件结构六、循环结构七、函数八、综合案例(数据库备份)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部