📜  Shell 脚本 - 交互式和非交互式 Shell(1)

📅  最后修改于: 2023-12-03 14:47:26.423000             🧑  作者: Mango

Shell 脚本 - 交互式和非交互式 Shell

Shell 是一种命令行解释器,用于在操作系统中执行操作系统命令和应用程序。Shell 脚本是一种脚本语言,可以在 Shell 命令行下执行。在本文中,我们将了解 Shell 脚本中的两种模式:交互式模式和非交互式模式。

交互式 Shell

交互式 Shell 可以让用户直接在终端中输入命令,并且能够立即给出结果。这种模式通常用于在命令行下进行一些简单操作,比如列出目录中的文件或者启动一个脚本。下面是一个简单的交互式 Shell 的代码示例:

#!/bin/bash
echo "Enter your name: "
read name
echo "Hello, $name"

这个 Shell 脚本会在终端中提示用户输入他们的名字,然后输出 "Hello, {name}" 的字符串。用户在终端中输入名字后,脚本会立即输出结果。下面是脚本运行的示例:

$ bash interactive_shell.sh
Enter your name:
John
Hello, John
非交互式 Shell

非交互式 Shell 可以让用户在脚本中预定义命令和参数,并且一次性执行它们,而不需要反复输入命令和参数。这种模式通常用于批量处理,比如在一个脚本中运行多条命令。下面是一个简单的非交互式 Shell 的代码示例:

#!/bin/bash
echo "Starting backup..."
tar -zcvf backup.tar.gz /home/user/backup/
echo "Backup complete."

这个 Shell 脚本会在终端中输出 "Starting backup..." 的字符串,然后创建一个名为 backup.tar.gz 的归档文件,并将 /home/user/backup/ 目录中的所有文件添加到其中。最后,它会在终端中输出 "Backup complete." 的字符串。下面是脚本运行的示例:

$ bash noninteractive_shell.sh
Starting backup...
/home/user/backup/
/home/user/backup/backup.log
/home/user/backup/important_doc.txt
...
Backup complete.
总结

本文介绍了 Shell 脚本中的两种模式:交互式和非交互式。交互式 Shell 允许用户在终端中输入命令并及时执行;非交互式 Shell 可以让用户在脚本中预定义命令和参数,并一次性执行它们。这两种模式在实际应用中均有其用途,并可根据需要进行选择。