Shell编程

一、简介

概念:
Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。
通过shell语法编写的可以通过shell执行的代码称之为shell脚本。
第一个Shell脚本

1.创建一个shell文件
vi hellworld.sh
2.编写内容:
	#!/bin/bash
	echo "hello world"
3.执行:两种方式
	第一种:sh 脚本文件名 直接执行:sh hellworld.sh
	第二种:加上helloworld.sh 脚本的+x 权限:chmod 777  helloworld.sh 
			执行:./ helloworld.sh  

二、语法

1.注释
Shell中的注释以“#”号开头,所有以“#”号开头的代码都会被解释器所忽略
2.变量
Linux Shell 中的变量分为,系统变量和用户自定义变量

系统变量
	$HOME、$PWD、$SHELL、$USER 、$JAVA_HOME等
自定义变量
	基本语法
	  定义变量:变量名=值
	  撤销变量:unset 变量
	  声明静态变量:readonly 变量,注意:不能 unset
	定义变量的规则
	  1. **变量名称可以由字母、数字和下划线组成,但是不能以数字开头。**
	  2. **等号两侧不能有空格**
	  3. 环境变量名称一般习惯为大写
	  4. 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算
	  5. 变量的值如果有空格,需要使用双引号或单引号括起来
预定义变量:shell 设计者事先已经定义好的变量,可以直接在 shell 脚本中使用
	$$ (功能描述:当前进程的进程号(PID))
	$! (功能描述:后台运行的最后一个进程的进程号(PID))
	$? (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令 执行不正确了。)

3.运算符

“$((运算式))”或“$[运算式]”
expr  + , - , \*,  /,  %    加,减,乘,除,取余 
注意:expr运算符间要有空格

在这里插入图片描述
4.条件判断

条件成立返回0 代表true 条件失败返回1 代表false
常见判断
1. 两个整数之间比较
   = 字符串比较
   -lt 小于(less than)			
   -le 小于等于(less equal)
   -eq 等于(equal)				
   -gt 大于(greater than)
   -ge 大于等于(greater equal)	
   -ne 不等于(Not equal)
2. 按照文件权限进行判断
   -r 有读的权限(read)			
   -w 有写的权限(write)
   -x 有执行的权限(execute)
3. 按照文件类型进行判断
   -f 文件存在并且是一个常规的文件(file)
   -e 文件存在(existence)		
   -d 文件存在并是一个目录(directory)

在这里插入图片描述
5.流程控制

if判断
单分支
if 条件表达式 ;then

    命令

fi

多分支
if 条件表达式 ;then
    命令
else
    命令
fi

多条件
if 条件表达式 ;then
    命令
elif 条件表达式 ;then
    命令
else
    命令
fi
for循环
for  变量名  in  取值列表
do
    命令
done
while 循环
while 条件表达式 ; do
      命令
done
breakcontinue语句
continuebreak 语句只能循环语句中使用;
break:终止循环,运行针跳至done后;
continue :跳出当前循环,运行针跳至do后,开始下一循环;

break:
#!/bin/bash
N=0
while [ $N -lt 10 ]; do
        let N++
        if [ $N -eq 5 ]; then
                break
        fi
        echo $N
done
continue:
#!/bin/bash
N=0
while [ $N -lt 10 ]; do
        let N++
        if [ $N -eq 5 ]; then
                continue
        fi
        echo $N
done

6.读取控制台输入内容

read(选项)(参数)
选项:
-p:指定读取值时的提示符;
-t:指定读取值时等待的时间(秒)。
参数
变量:指定读取值的变量名

7.函数(方法)
由函数名 返回值 参数组成,linux shell 可以用户定义函数,然后在shell脚本中可以随便调用

[function]函数名字 () {
       CMD  #函数体
}

例:
#!/bin/bash 
function A () {
    echo "hello world"
    return 1
    # return 会终止函数 return下的所有代码不会再执行
    echo "hello world" 
}

# 执行A
A

8.函数参数
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...

#!/bin/bash
A(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
A 1 2 3 4 5 6 7 8 9 34 73
参数处理
# 说明
$#  -->#传递到脚本或函数的参数个数
$*  --># 以一个单字符串显示所有向脚本传递的参数
$$  -->#脚本运行的当前进程ID号
$!  -->#后台运行的最后一个进程的ID号
$@  -->#与$*相同,但是使用时加引号,并在引号中返回每个参数。
$-   -->#显示Shell使用的当前选项,与set命令功能相同。
$?  -->#显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

例:
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值