【Linux】快速入门shell编程

   日期:2020-07-12     浏览:102    评论:0    
核心提示:每天都得进步,哪怕是一点!文章目录一.shell基本介绍1.基本介绍2.shell脚本的执行要求3.脚本的常用执行方式二.shell变量1.基本介绍2.shell变量的定义和撤销3.定义变量的规则4.将命令的结果赋值给变量5.设置环境变量7.位置参数变量8.预定义变量9.shell中的运算符三.流程控制-条件控制1.条件判断基本语法2.常用的条件判断 `重点`2.1.字符串比较2.2.两个整数的比较2.3.按照文件权限进行判断2.4.按照文件类型进行判断2.5.基本案例3.if判断语句3.1.基本语法3.

每天都得进步,哪怕是一点!

文章目录

  • 一.shell基本介绍
          • 1.基本介绍
          • 2.shell脚本的执行要求
          • 3.脚本的常用执行方式
  • 二.shell变量
          • 1.基本介绍
          • 2.shell变量的定义和撤销
          • 3.定义变量的规则
          • 4.将命令的结果赋值给变量
          • 5.设置环境变量
          • 7.位置参数变量
          • 8.预定义变量
          • 9.shell中的运算符
  • 三.流程控制-条件控制
      • 1.条件判断基本语法
      • 2.常用的条件判断 `重点`
        • 2.1.字符串比较
        • 2.2.两个整数的比较
        • 2.3.按照文件权限进行判断
        • 2.4.按照文件类型进行判断
        • 2.5.基本案例
      • 3.if判断语句
        • 3.1.基本语法
        • 3.2.基本案例
      • 4.case判断语句
        • 4.1.基本语法
        • 4.1.基本案例
  • 四.流程控制-循环控制
    • 1.for循环
        • 1.1.for循环基本语法1
        • 1.2.语法1的基本案例
        • 2.1.for循环基本语法2
        • 2.2.语法2的基本案例
    • 2.while循环
        • 2.1.while基本语法
        • 2.1.while基本案例
  • 五.read读取控制台输入
      • 1.基本语法
      • 1.基本案例
  • 五.shell函数基础
      • 5.1.常用系统函数
      • 5.2.自定义函数基本语法
      • 5.3.函数入门案例

一.shell基本介绍

1.基本介绍

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

2.shell脚本的执行要求

①脚本以#!/bin/bash开头 【使用bash进行解释】
②脚本需要有可执行权限

3.脚本的常用执行方式

①添加可执行权限,直接运行
②没有可执行权限,sh+脚本名【也可执行】

二.shell变量

1.基本介绍

①Linux shell中的变量分为系统变量和用户自定义变量
②常用的系统变量有:$HOME $PWD $SHELL $USER 等
③命令行中使用 set 可以查看当前shell中所有的变量

2.shell变量的定义和撤销

①定义变量:变量名=值 【注意:声明变量时,等号两边不能有空格
②撤销变量:unset 变量名
③声明静态变量:readonly 变量 【注意:静态变量不能unset

3.定义变量的规则

①变量名称可以有字母,数字,下划线组成。不能以数字开头
②定义变量时,等号两边不能有空格
③变量名称一般为大写

4.将命令的结果赋值给变量

①A=`ls -la` 【反引号】 运行里面的命令,并把结果返回给变量A
②A=$(ls -la) $符号等价于反引号

5.设置环境变量

①export 变量名=变量值 【让shell变量输出为环境变量】
②source 配置文件 【让修改后的环境变量立即生效】
③echo $变量名 【查询环境变量的值】


6.代码注释
①单行注释 #
②多行注释
:<<!
内容
内容
!

7.位置参数变量

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

变量 说明
$n n为数字,$0代表命令本身,$1-$9代表一个到第九个参数,十个或十个以上的的参数需要使用大括${10}
$* 功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 功能描述:这个变量也代表命令行中所有的参数,$@把每个参数区分对待
$# 功能描述:这个变量代表命令行中所有参数的个数
8.预定义变量

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

变量 说明
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)
$? 最后一次执行的命令的返回状态,如果返回0,就代表该命令正确执行,非0就代表不正确执行
9.shell中的运算符

①$((运算式)) 或者 $[运算式]
②`expr m + n` 注意:需要用反引号引起来,运算符两边需要有空格
③* 注意乘号需要使用转义符号 \,其他符号正常使用

#!/bin/bash
#计算A加B的值
A=100
B=200
#方式一
echo "A+B= $(($A+$B))"

#方式二
echo "A+B= $[$A+$B]"

#方式三
echo "A+B= `expr $A + $B`"

#*乘号需要使用转义符
echo "A+B= `expr $A \* $B`"

执行脚本

三.流程控制-条件控制

1.条件判断基本语法

①[ condition ] 注意condition前后需要有空格
②非空返回true,可以使用$?验证,0为true,>1为false
③应用实例
[ hello ] 返回true
[] 返回false

④三元表达式:
[ condition ] && echo ok || echo nook
说明:条件判断为真输出ok,为假输出nook

2.常用的条件判断 重点

2.1.字符串比较

= 等于

2.2.两个整数的比较

-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于

2.3.按照文件权限进行判断

-r 可读
-w 可写
-x 可执行

2.4.按照文件类型进行判断

-f 文件存在并且是一个常规的文件
-e 文件存在
-d 文件存在并且是一个目录

2.5.基本案例

#!/bin/bash
 #案例一:判断"ok" 是否等于 "ok"
if [ "ok" = "ok" ]
then
        echo "相等equal"
fi
 
 #案例二:判断 23 是否大于 22
if [ 23 -ge 22 ]
then
        echo "23 大于 22"
fi

 #案例三:判断当前目录下是否存在aaa.txt文件
if [ -e ./aaa.txt ]
then
        echo "存在"
fi

3.if判断语句

3.1.基本语法

注意:[ 条件判断式 ] 中两边都有空格

 if [ 条件判断式 ] 
 then
	程序
 elif [ 条件判断式 ]
 then
	程序
 fi

3.2.基本案例

#!/bin/bash
#成绩通过位置参数获取
#输出成绩,如果大于60输出及格了,否则输出不及格
sorce=$1
if [ $sorce -ge 60 ]
then
        echo "及格了"
elif [ $sorce -lt 60 ]
then
        echo "不及格"
fi

4.case判断语句

4.1.基本语法

 case $变量名 in
"值1")
	程序
 ;;
"值2")
	程序
 ;;
 * )
	其他值进入此分支
 ;;
 esac

4.1.基本案例

#!/bin/bash
#输出数字,如果为1,输出周一,如果为2,输出周二,其他数字,输出其他
case $1 in
"1")
        echo "周一"
;;
"2")
        echo "周二"
;;
*)
        echo "other"
;;
esac

四.流程控制-循环控制

1.for循环

1.1.for循环基本语法1

 for 变量 in 值1 值2 值3
do
	程序
done

1.2.语法1的基本案例

#!/bin/bash
#求出位置参数的和 
sum=0   
for i in $@
do           
        sum=$[$sum+$i] 
        echo "$i"
done
echo "结果为 $sum" 

2.1.for循环基本语法2

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

2.2.语法2的基本案例

#!/bin/bash
#求出1-100的和 
sum=0
for ((i=0;i<=100;i++))
do  
        sum=$[$sum+$i]
done 
echo "1-100的和为:$sum"

2.while循环

2.1.while基本语法

 while [ 条件判断 ]
 do
	程序
 done

2.1.while基本案例

#!/bin/bash
#输出一个数n,求出1-n的和
sum=0
n=$1
while [ $n -gt 0 ]
do
        sum=$[$sum+$n]
        n=$[$n-1]
done
echo "$sum"

五.read读取控制台输入

1.基本语法

read 【选项】(参数)
选项 说明
-p 指定读取值时的提示符
-t 指定读取值时,等待的时间(秒),如果没有在指定的时间内输入,就不再等待了

1.基本案例

#!/bin/bash
 #读取控制台的值
read -p "请输入一个值:" NUM1
echo "你输出的值为: $NUM1"

#!/bin/bash
 #三秒钟后自动退出
read -t 3 -p "3秒内输入" NUM2
echo "$NUM2"

五.shell函数基础

shell函数和其他编程语言一样,有系统函数,也可以自定义函数

5.1.常用系统函数

①basename 【pathname】【suffix】
功能:返回完成路径最后 / 部分,常用于获取文件名

②dirname 文件绝对路径
功能:返回完成路径最后 / 的前面部分,常用于返回路径部分

5.2.自定义函数基本语法

 [function] function[()]{
	Action;
	[return int;]
}

5.3.函数入门案例

#!/bin/bash
#编写一个函数,用户计算两个数的和
function getSum(){
        SUM=$[$N1+$N2]
        echo "结果是:$SUM"
}

read -p "请输入第一个数:" N1
read -p "请输入第二个数:" N2
getSum $N1 $N2
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服