Linux之Shell编程(1)


前言

为什么要学习Shell编程
1.Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。
2对于JavaE和Python程序员来说,工作的需要,你的老大会要求你编写一些Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。
3.对于大数据程序员来说,需要编写Shell程序来管理集群。


一、Shell是什么

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

在这里插入图片描述

二、Shell脚本的执行方式

脚本格式要求
1.脚本以#!/bin/bash开头
2.脚本需要有可执行权限
●编写第一个Shell脚本
需求说明:创建一个Shell脚本,输出hello world!

#!/bin/bash
echo "hello,word"

chmod u+x shcode.sh  添加可执行权限

脚本的常用执行方式

方式1(输入脚本的绝对路径或相对路径)
说明:首先要赋予helloworld.sh脚本的+x权限,再执行脚本
方式2(sh+脚本)
说明:不用赋予脚本+x权限,直接执行即可。

三、Shell的变量

Shell变量介绍

  1. Linux Shell中的变量分为,系统变量和用户自定义变量。
  2. 系统变量:$HOME、$PWD、$SHELL、$USER等等,比如: echo $HOME 等等.
  3. 显示当前shell中所有变量:set

shell变量的定义

基本语法
1.定义变量:变量=值
2撤销变量:unset变量
3.声明静态变量:readonly变量,注意:不能unset
快速入门
#!/ bin/ bash
#案例1:定义变量AA=100
#输出变量需要加上$

echo A=$A
echo "A=$A"

#案例2:撤销变量A

unset A
echo "A=$A"

#案例3:声明静态的变量B=2,不能unset

readonly B=2
echo "B=$B"
unset B 添加这句,会提示出错

定义变量的规则
1.变量名称可以由字母、数字和下划线组成,但是不能以数字开头。5A=200(×)
2.等号两侧不能有空格
3.变量名称一般习惯为大写,这是一个规范,我们遵守即可
将命令的返回值赋给变量
1.A=date反引号,运行里面的命令,并把结果返回给变量A
2. A=$(date)等价于反引号

四、设置环境变量

基本语法

  1. export 变量名=变量值(功能描述:将shell变量输出为环境变量/全局变量)
  2. source 配置文件(功能描述:让修改后的配置信息立即生效)
  3. echo $变量名(功能描述:查询环境变量的值)

快速入门

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

export TOMCAT_HOME=/opt/tomcat

在这里插入图片描述

2.查看环境变量TOMCAT_HOME的值

source /opt/tomcat
echo $TOMCAT_HOME

3.在另外一个shell程序中使用TOMCAT_HOME

echo "tomcat=$TOMCAT HOME"

注意:在输出TOMCAT_HOME 环境变量前,需要让其生效source /etc/profile

附Shell脚本的多行注释

 :<<! 
 内容
 !

在这里插入图片描述

五、位置参数变量

介绍

当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量
比如:./myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell 脚本中获取到参数信息

●基本语法

List item

$n(功能描述:n为数字,$0代表命令本身,$1- $9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})

$*(功能描述:这个变量代表命令行中所有的参数,$* 把所有的参数看成一个整体)

$ @(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

$#(功能描述:这个变量代表命令行中所有参数的个数)

●位置参数变量

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

echo "0=$0 1=$1 2=$2"
echo "所有的参数=$*"
echo "$@"
echo "参数的个数=$#"

在这里插入图片描述

六、预定义变量

基本介绍

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

基本语法

$$(功能描述:当前进程的进程号(PID) )
$!(功能描述:后台运行的最后一个进程的进程号(PID) )
$ ?(功能描述∶最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)
应用实例
在一个shell脚本中简单使用一下预定义变量preVar.sh

#!/bin/bash
echo "当前执行的进程id=$$"
#以后台方式运行一个脚本,获取他的进程号
/root/shcode.sh &
echo "最后一个后台方式运行的进程id=$!"
echo "执行的结果是=$?"
                       

在这里插入图片描述

七、运算符

基本介绍

学习如何在shell中进行各种算操作。

基本语法

1.“$((运算式))”或“$[运算式]”或者expr m +n
2.注意expr运算符间要有空格
3. expr m - n
4.expr *.1.% 乘,除,取余
应用实例
案例1:计算(2+3)X4的值

#!/bin/bash
RES=$(((2+3)*4))
echo "res=$RES"

#使用第二种方式,推荐使用

RES2=$[(2+3)*4]
echo " res2=$RES2"
#使用第三种方式expr 
TEMP=` expr 2 +.3`
RES4=`expr $TEMP \* 4`
echo "temp=$TEMP"
echo "res4=$RES4"

#案例2:请求出命令行的两个参数[整数]的和20 50

SUM=$[$1+$2]
echo "sum=$SUM"

猜你喜欢

转载自blog.csdn.net/hsuehgw/article/details/129717910