CodeGym /课程 /Docker SELF /介绍bash脚本: 语法, 变量, 命令

介绍bash脚本: 语法, 变量, 命令

Docker SELF
第 3 级 , 课程 3
可用

介绍bash脚本: 语法, 变量, 命令

1. 什么是Bash脚本?

如果你曾经想过:“为什么我要一遍又一遍地重复这些命令?”,恭喜你,你已经准备好学习Bash脚本了!Bash脚本是一种通过编写命令序列到一个文件中来在Linux中自动化工作的方式。Bash (Bourne Again Shell) 不仅仅是一个shell,它是管理员、程序员和所有想让系统为自己工作的人的瑞士军刀。

Bash脚本的优势

  • 节省时间: 写一次,运行八次。
  • 任务的可重复性: 每次运行脚本结果都一样(当然,如果你写得没问题的话)。
  • 自动化日常工作: 创建用于备份、资源监控或文件管理的自定义命令。

2. 编写脚本的基础

好了,我们开始吧。Bash脚本就是一个包含命令集合的纯文本文件。但是为了让Linux明白这是脚本,而不是你随手写的日记,我们必须遵循一些规则。

步骤1:文件的名称和格式

Bash脚本通常使用后缀 .sh(但这不是必须的)。例如:

hello_world.sh
backup_script.sh

步骤2:必要的头部

每个bash脚本都以以下这行开头:

#!/bin/bash

这行叫做shebang,它告诉系统执行脚本时需要用到的解释器是 /bin/bash。没有这个,系统只会看着你的脚本,叹口气然后什么都不做。

步骤3:最简单的脚本

我们来创建并运行一个脚本,它会输出"你好,世界!"的文字。为什么不呢?

  1. 创建文件:

    nano hello_world.sh
    
  2. 添加以下内容:

    #!/bin/bash
    echo "你好,世界!"
  3. 将文件设为可执行:

    chmod +x hello_world.sh
    
  4. 运行脚本:

    ./hello_world.sh
    

屏幕上你会看到:

你好,世界!

3. 使用变量

变量是脚本里用来存储数据的工具,它们让脚本更灵活且易于使用。

创建变量

要声明一个变量,使用以下格式:

变量名="值"

示例:

NAME="Linux"
echo "欢迎来到 $NAME!"

输出:

欢迎来到 Linux!

注意:变量名和等号之间不能有空格。如果有空格,bash会认为你写了个奇怪的东西,然后报错。

内置变量

Bash提供了一些预定义变量,比如:

  • $USER — 当前用户。
  • $HOME — 主目录。
  • $PWD — 当前工作目录。

试试看下面这个脚本:

#!/bin/bash
echo "你好, $USER!"
echo "你的主目录是: $HOME"
echo "你现在工作在: $PWD"

4. 从用户获取数据

有时候脚本需要从用户那里获取数据才能运行。为此可以使用read命令。

例子:

#!/bin/bash
echo "你叫什么名字?"
read NAME
echo "你好, $NAME!"

运行脚本时,你可以输入自己的名字,然后脚本会个性化地向你打招呼。


5. 在脚本中使用命令

Bash允许你像在终端中输入命令一样在脚本中执行这些命令。

例如:

#!/bin/bash
echo "当前日期和时间:"
date

命令 date 会显示当前时间和日期,例如:

当前日期和时间:
Mon Oct 30 12:34:56 UTC 2023

将命令的结果保存到变量中

你可以使用 $() 将命令的输出保存到变量里。这对于进一步处理数据非常有用。

例如:

#!/bin/bash
CURRENT_DATE=$(date)
echo "现在是: $CURRENT_DATE"

6. 脚本中的注释

总是添加注释,这样一个月后你才能搞懂自己写的代码。使用符号 # 来添加注释:

#!/bin/bash
# 这是欢迎脚本
echo "欢迎来到Bash的世界!"

注释会被解释器忽略,不影响脚本的执行。


7. 示例

现在我们写一个脚本,检查文件是否存在。

  1. 创建文件:

    nano file_checker.sh
    
  2. 添加代码:

    #!/bin/bash
    
    # 请求文件名
    echo "请输入文件名:"
    read FILE_NAME
    
    # 检查文件是否存在
    if [ -f "$FILE_NAME" ]; then
        echo "文件 $FILE_NAME 存在。"
    else
        echo "文件 $FILE_NAME 未找到。"
    fi
  3. 将文件设为可执行并运行:

    chmod +x file_checker.sh
    ./file_checker.sh
    
  4. 脚本工作示例:

    请输入文件名:
    test.txt
    文件 test.txt 存在。
    

8. 常见错误

写bash脚本不仅能带来乐趣,有时候也能让人挠破头。以下是几个常见错误:

  1. 忘记写shebang。
    如果没有写 #!/bin/bash,你的脚本可能会试图用其他的解释器运行,从而导致错误。

  2. 未声明的变量。
    如果你不小心在变量名上拼写错误,bash会将其视为空。用set -u开启严格模式可以避免这种问题。

  3. = 周围的空格。
    永远不要这样写:VARIABLE = "value"。这会导致错误。

  4. 权限问题。
    如果脚本没有执行权限,用 chmod +x 添加权限。

实践任务

  1. 写一个脚本,要求如下:

    • 询问用户名。
    • 输出问候语。
    • 显示当前日期和时间。
  2. 写一个脚本,要求如下:

    • 询问用户文件名。
    • 如果文件不存在则创建文件,否则提示文件已存在。

现在你已经掌握了bash脚本的基础内容!接下来需要学习的是如何添加条件语句和循环,这会在下一次讲座中讲到。加油,走向自动化世界!

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION