Bash 脚本基础

server/2025/4/2 5:44:45/

一、Bash 脚本基础

  • 什么是 Bash 脚本:Bash 脚本是一种文本文件,其中包含了一系列的命令,这些命令可以被 Bash shell 执行。它用于自动化重复性的任务,提高工作效率。

  • Bash 脚本的基本结构:以 #!/bin/bash 开头,表示使用 Bash 解释器来执行脚本。接下来是具体的命令和操作。

二、编写和运行第一个 Bash 脚本

  1. 创建脚本文件:使用命令 nano hello.sh 创建名为 hello.sh 的文件。

  2. 编写脚本:在文件中输入以下内容:

    bash复制

    #!/bin/bash
    echo "Hello World"
  3. 保存并退出:按 Ctrl+X 键,然后按 Y 键确认保存,最后按回车键退出 nano 编辑器。

  4. 赋予执行权限:在终端中运行 chmod u+x hello.sh 命令,赋予脚本执行权限。

  5. 运行脚本:执行 ./hello.sh 命令,即可看到输出 Hello World

三、变量的使用

  • 声明变量:变量的声明方式为 var=value,注意等号前后不能有空格。

  • 访问变量:使用 $var 的方式来访问变量的值。

  • 示例

    bash复制

    #!/bin/bash
    message="Hello World"
    echo $message

四、传递参数和用户输入

  • 传递参数:在运行脚本时,可以传递参数,例如 ./my_script.sh arg1 arg2。在脚本中,使用 $1$2 等来代表第 1、第 2 个参数。

  • 用户输入:使用 read 命令来获取用户的键盘输入,例如:

    bash复制

    #!/bin/bash
    echo "What is your name?"
    read name
    echo "Hello, $name"

五、条件语句

  • if-else 语句:用于根据条件执行不同的代码块。例如:

    bash复制

    #!/bin/bash
    if [ $(whoami) = 'root' ]; thenecho "You are root"
    elseecho "You are not root"
    fi

六、循环语句

  • for 循环:用于遍历一系列的值。例如:

    bash复制

    #!/bin/bash
    for i in {1..5}
    doecho $i
    done
  • while 循环:只要条件判断式成立,循环就会一直继续。例如:

    bash复制

    #!/bin/bash
    i=1
    while [ $i -le 5 ]
    doecho $ii=$((i+1))
    done
  • until 循环:只要条件判断式不成立则进行循环,并执行循环程序。例如:

    bash复制

    #!/bin/bash
    i=1
    until [ $i -gt 5 ]
    doecho $ii=$((i+1))
    done

七、函数的创建和使用

  • 定义函数:使用 function 函数名 () { ... } 的格式来定义函数。例如:

    bash复制

    #!/bin/bash
    function greet () {echo "Hello, $1"
    }
  • 调用函数:通过函数名来调用函数,例如 greet "Alice"

八、错误处理

  • 检查命令是否成功:使用 $? 来获取最后执行命令的退出状态,0 表示成功,非 0 表示失败。

  • 使用 set 命令set -e 可以让脚本在遇到错误时立即退出。

文章来源:https://blog.csdn.net/weixin_51870331/article/details/146373814
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/server/179303.html

相关文章

分类——数学公式推导全过程

文章目录 一、引入案例 二、准备知识 1. 内积 2. 感知机 3. 权重向量的更新表达式 4. 线性可分 三、 逻辑回归 1)sigmoid 函数 2)决策边界 3)似然函数 4)对数似然函数 5)线性不可分 一、引入案例 根据尺寸…

Cocos Creator Shader入门实战(五):材质的了解、使用和动态构建

引擎:3.8.5 您好,我是鹤九日! 回顾 前面的几篇文章,讲述的主要是Cocos引擎对Shader使用的一些固定规则,这里汇总下: 一、Shader实现基础是OpenGL ES可编程渲染管线,开发者只需关注顶点着色器和…

数据库的DDL操作

目录 一、创建数据库 (1)字符集和校验集 二、操作数据库 (1)查看数据库 (2)显示创建语句 (3)修改数据库 (4)删除数据库 三、数据库的备份与恢复 四、…

数据结构C语言练习01

今天的题目: 1.移除元素 2.删除排序数组中的重复项 3.合并两个有序数组 可点击上面链接先做 1.移除元素 思路: 方法1:暴力移除(双循环移动元素) 1. 从前往后遍历nums,找到val第一次出现的位置 2. 将…

【TI MSPM0】PWM学习

一、样例展示 #include "ti_msp_dl_config.h"int main(void) {SYSCFG_DL_init();DL_TimerG_startCounter(PWM_0_INST);while (1) {__WFI();} } TimerG0输出一对边缘对齐的PWM信号 TimerG0会输出一对62.5Hz的边缘对齐的PWM信号在PA12和PA13引脚上,PA12被…

华为HG532路由器RCE漏洞 CVE-2017-17215 复现

华为HG532路由器RCE漏洞 CVE-2017-17215 CVE-Description Huawei HG532 with some customized versions has a remote code execution vulnerability. An authenticated attacker could send malicious packets to port 37215 to launch attacks. Successful exploit could l…

基于STC89C51的太阳自动跟踪系统的设计与实现—单片机控制步进电机实现太阳跟踪控制(仿真+程序+原理图+PCB+文档)

摘 要 随着我国经济的飞速发展,促使各种能源使用入不敷出,尤其是最主要的能源,煤炭石油资源不断消耗与短缺,因此人类寻找其他替代能源的脚步正在加快。而太阳能则具有无污染﹑可再生﹑储量大等优点,且分布范围广&…

04STM32外部中断

EXTI(Extern Interrupt)外部中断 EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序支持的触…