Linux学习第十四节-shell脚本
创始人
2024-05-29 16:05:00

1.Shell概述

Shell连接了用户和Linux内核,他可以解释用户输入的命令传输给内核,让用户可以更加方便的使用Linux系统;

Shell本身并不是内核的一部分,他只是站在内核的基础上编写一个应用程序;

Shell具备编程的能力,也是一种语言;

Shell语言支持大部分编程语言都具备的功能:if判断、for循环、变量、数组、函数、加减乘除、逻辑运算。

2.规范的shell脚本组成

3.如何写好一个shell脚本

①明确任务需求;

②按需求整理好每一个步骤,先做什么,后做什么;

③运行脚本、并根据运行结果排除错误;

④优化脚本并达到最终效果。

4.脚本执行方式

①赋予执行权限后,可以绝对路径或者当前路径执行

绝对路径:/root/hello.sh

相对路径:脚本同级目录下./hello.sh

②调用解释器执行脚本文件

查看系统有哪些解释器,都可以使用:cat /etc/shells

执行脚本:bash hello.sh

5.编写脚本

步骤:vim xxx.sh  chmod u+x xxx.sh  ./xxx.sh

①Hello world

②创建用户名和密码

 ③查看系统信息

④搭建本地yum源(正常版)

⑤搭建本地yum源(升级版)

6.常用特殊符号

①“” #双引号,引用整体
②‘ ’ #单引号,引用整体并取消所有特殊字符含义
③$[] #四则运算(+ - * / % 取余数)
④$() #将命令的输出结果作为参数
⑤`` #反撇 将命令的输出结果作为参数 

举例:

①[root@localhost ~]# echo "$PATH" 表示引用整体,不屏蔽特殊符号的功能  

②[root@localhost ~]# echo '$PATH' 表示引用整体,屏蔽特殊符号的功能

③[root@localhost ~]# echo $[1+1] 表示四则运算

④[root@localhost ~]# touch $(date +%F)-a.txt 表示$()取命令结果作为参数  

⑤[root@localhost ~]# touch `date +%F`-x.txt 表示``取命令结果作为参数  

7.变量

以固定的名称存放可能变化的值,提高脚本的灵活度来适应多变的环境。
定义变量:变量名=变量值,如:a1=abc(等号两边不要有空格);

取消变量:unset 变量名。
定义变量注意事项:
①变量名由字母/数字/下划线组成,区分大小写,不能以数字开头,不要使用命令和特殊符号;
②若指定的变量名已经存在,相当于为此变量重新赋值。

举例:

①定义变量并输出
[root@localhost ~]# xx=5

[root@localhost ~]# echo $xx

[root@localhost ~]# echo $[xx+5]

②通过变量定义用户名

8.read标准输入取值

read 读取用户在键盘上输入的内容,并把内容存放在变量里,可以降低脚本的使用难度。
命令格式:read -p “提示信息” 变量名

举例:

①交互式创建用户脚本

9.变量种类

环境变量:变量名一般都大写,用来设置用户/系统环境;
位置变量:bash内置,存储执行脚本时提供的命令参数;
预定义变量:bash内置,可直接调用的特殊值,不能直接修改;
自定义变量:用户自定义。

环境变量举例:
①查看系统所有环境变量

[root@localhost etc]# env
②获取变量值

[root@localhost etc]# echo $SHELL

③查看系统所有变量,包括用户自定义变量

[root@localhost ~]# set

[root@localhost ~]# set | grep $a

位置变量:

$0 #脚本名称

$1 #第一个参数
$2 #第二个参数
$3 #第三个参数
$4 #第四个参数
$n… #第n个参数
预定义变量 
$0 #代表脚本本身
$* #显示所有参数内容
$# #显示有多少个参数
$? #显示上一条命令的执行结果(0代表正确,非0代表错误)
$$ #显示脚本进程号(PID) 

举例:

①编写test.sh脚本

②赋予执行权限,执行test.sh脚本

③编写脚本

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...