shell脚本的详细介绍以及运用

一、Shell

  1. Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁
  2. Shell 既是一种命令语言,又是一种程序设计语言。
  3. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

二、Shell环境
Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。Linux 的 Shell 种类众多,常见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)

三、shell创建
(1)创建文件设置权限
①创建 touch kb08.sh vi kb08.sh进入修改
1)#!/bin/bash
2)echo’hello world’
3):x
②修改权限chmod u+x xxx.sh
启动 ./xxx.sh
在这里插入图片描述
四、shell变量

  1. 系统变量:①系统变量 echo $PATH printf ‘%s\n%s\n%s\n’ $PATH $PWD $USER
    $UID $HOME $HOSTNAME
    set:显示所有系统变量

  2. 自定义变量:
    1)数据类型:
    a.弱类型(通常为字符串、数值)(一个变量可以赋不同数据类型的值)
    b.数组([val1,…,valn])
    2)声明变量: VAR=VALUE
    a.变量命名组成规则同java常量
    b.=两侧不能有空
    c.赋值
    a)A=123
    b)A=henry ‘henry Chen’ “1 and 2”
    c)A=ls-la <=>A= ( l s − l a ) 3 ) 取 消 变 量 : u n s e t V A R 4 ) 变 量 的 作 用 域 a . 环 境 变 量 : 跨 S H E L L 访 问 b . 全 局 变 量 : 当 前 S H E L L 中 访 问 a ) 每 个 S H E L L 会 话 都 是 独 立 进 程 拥 有 独 立 P I D , 不 同 S H E L L O 会 话 之 前 不 会 相 互 交 叉 英 雄 b ) 函 数 中 的 变 量 默 认 也 是 全 局 变 量 c . 局 部 变 量 : 当 前 函 数 中 访 问 a ) 函 数 中 声 明 局 部 变 量 : l o c a l A = 5 d . 预 定 义 变 量 a ) (ls -la) 3)取消变量:unset VAR 4)变量的作用域 a.环境变量:跨SHELL访问 b.全局变量:当前SHELL中访问 a)每个SHELL会话都是独立进程拥有独立PID,不同SHELLO会话之前不会相互交叉英雄 b)函数中的变量默认也是全局变量 c.局部变量:当前函数中访问 a)函数中声明局部变量:local A=5 d.预定义变量 a) (lsla)3)unsetVAR4a.SHELL访b.SHELL访a)SHELLPIDSHELLOb)c.访a)localA=5d.a)? 最后一次执行命令的返回状态 0表示正常, 其他表示异常
    b)$$ 当前进程的进程编号PID
    c)$! 后台运行的最后一个进程编号PID
    5)输入参数 ./xxx.sh 1 2 3 调用shell脚本传参
    a. 0 命 令 本 身 b . 0 命令本身 b. 0b.n int(n>0)表示第几参数
    c. ∗ 所 有 参 数 ( 整 体 ) d . * 所有参数(整体) d. d.@ 所有参数(个体)
    e.KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲ 参数数量 (3)注释 ①单…((EXP)) S= ( ( 2 + 3 ) ) b . ((2+3)) b. ((2+3))b.[EXP] S=$[2*3]
    c.expr EXP 分布计算
    注意:*表示乘法,其他相同,运算符前后必须加空格
    S=expr 2 \* 3
    d.let 简单表达式
    ②关系运算符和条件表达式condition前后有空格
    1)[ condition ] -eq -ne -gt -lt -ge -le(等于、不等于、大于、小于、大于等于、小于等于)
    2)test condition 同上
    3)[[ contition ]] 同上
    ③逻辑运算符
    1)! 非
    2)-o 或
    3)-a 且
    (6)逻辑控制
    ①分支结构
    if [ condition ]
    then
    语句块
    if

    if [ condition ]
    then
    语句块
    elif[ condition2 ]
    then
    语句块
    else
    语句块
    fi

    case $VAR in
    V1)
    语句块
    ;;
    V2)
    语句块
    ;;
    *)
    语句块
    ;;
    ease
    在这里插入图片描述
    在这里插入图片描述
    ②循环
    for VAR in val1…valn
    do
    语句块
    done

for((初始化;条件;变化))
do
语句块
done
在这里插入图片描述
while [ condition ]
do
语句块
done
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值