Shell——编程1

 

shell 是一个命令解释器,为用户提供一个向Linux内核发送请求的以便程序的界面系统级程序,用户可以用shell来启动,挂起、

停止甚至是编写一些程序。

1.1、脚本格式要求

1)脚本以#!/bin/bash开头

2)脚本需要有执行的权限

脚本的常用执行方式

方式1(输入脚本的绝对路径或者相对路径)

1)首先线赋予脚本的x权限       chmod   744 shelll.sh    

 2)执行脚本    ./shell.sh(相对路径)  /root.shell/shell.sh (绝对路径)   

1.2  shell的变量

1)Linux Shell中的变量分为系统变量用户自定义变量

2)系统变量:$HOME 、$PATH、$PWD、$SHELL、$USER

echo $HOME

1.2.1、变量的定义

基本语法:

1)定义变量:变量=值

2)撤销变量:unset 变量

3)声明静态变量:readonly变量,注意:不能unset

例1:

A=100

echo "A=$A"

unset A  

echo "A=$A"

例2:

readonly A=100   #定义和使用静态变量

echo "A=$A"   #静态变量不能unset

unset A

echo "A=$A"

1.2.2定义变量的规则

1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头

2)“=”等号两侧不能有空格

3)变量名称一般习惯为大写

1.2.3 将命令的返回值赋给变量(重点)

1)A=`ls-la`反引号 ,运行里的领命,并把结果返回给变量A

2)A=$(ls-la)等价于反引号

例1:

1.3设置环境变量

1.3.1基本语法

1)export 变量名 = 变量值 (功能描述:将shell变量输出为环境变量)

2)source配置文件             (功能描述:让修改后的配置信息立即生效)

3)echo $变量名                 (功能描述:查询环境变量的值)

1)在/etc/profile 文件中配置JAVA_HOME环境变量

1.4位置参数变量

1.4.1介绍

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

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

1.4.2基本语法

$n                  (功能描述:n为数字$0代表命令本身,$1-$9代表第1个到第9个参数,10以上的参数,需要${10})

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

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

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

1.5预定义变量

1.5.1基本介绍:

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

1.5.2基本语法

$$                  (功能描述:当前进程的进程号(PID))

$!                   (功能描述:后台运行的最后一个进程的进程号(PID))

$?                  (功能描述:最后一次执行的命令的返回状态,如果为0,证明上一个命令正确执行,若非0)

1.6运算符

1.6.1 基本介绍

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

1.6.2 基本语法

1)"$((运算式))" 或“$[]”

2)exprt   m+n   export 运算间要有空格

3)exprt   m-n

4)expr  \*,/,% 乘,除,取余

例1:

 

例2:

1.7条件判断

1.7.1基本语法

[condition](注意condition 前后要有空格)

#非空返回true,可以使用$?验证 (0为true,>1为false)

应用实例:

[lyp]  返回true

[] 返回false

[condition] && echo OK || echo notok 条件满足,执行后面的语句

1.7.2常用的条件判断

 -lt 小于

-le  小于等于

-eq 等于

-gt  大于

-ge 大于等于

-ne 不等于

2)按照文件类型进行判断

-f   文件存在并且是一个常规文件

-e  文件存在

-d  文件存在并是一个目录

1.7.2 应用实例

例1:

例2:

例3:

1.7.3流程控制

基本语法

if    [条件判断式];then

程序

fi

或者

if  [ 条件判断式 ]

then

   程序

elif   [条件判断]

then

      程序

fi

注意:

1)[ 条件判断式  ] ,中括号和条件判断式之间必须有空格

2)推荐使用第二种方式

.应用实例

例1

1.7.4 case语句

基本语法

case $变量名 in

"值1")

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

;;

"值2")

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

;;

*)

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

;;

easc

 

#!/bin/bash
#案例1:当命令行参数是1时3,输出周一,是2时,输出周二,其他则输出other
case $1 in
"1")
echo '周一'
;;
"2")
echo "周二"
;;
*)
echo "other"
;;
esac

1.7.5 for 循环

 基本语法

for 变量 in 值1 值2 值3 ...

do

程序

done 

#!/bin/bash

#案例 打印命令行输入的参数

#使用$*
for i in "$*"
do
        echo "the num is $i"
done
echo "=============================="
for j in "$@"
do
        echo "the sum is $j"
done

 

例2

#!/bin/bash
# 案例从1加到100的值输出
#定义一个变量
SUM=0
for ((i=1;i<=100;i++))
do
        SUM=$[ $SUM+$i ]
        echo $SUM
done
echo "sum=$SUM"
             

1.7.6 while循环

基本语法

while  [ 条件判断式 ]

do

程序

done

例1

#!/bin/bash

#案例1:从命令行输入一个数n,统计1+2+。。。。+n的值是多少
SUM=0
i=0
while [ $i -le $1 ]
do
        SUM=$[$SUM+$i]
        i=$[$i+1]
done
echo "sum=$SUM"
~                  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值