如何在 Linux 中使用 Shell 脚本执行命令如何在 Linux 中使用 Shell 脚本执行命令如何在 Linux 中使用 Shell 脚本执行命令如何在 Linux 中使用 Shell 脚本执行命令
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中使用 Shell 脚本执行命令

介绍

Shell 是一个命令行解释器,允许用户与系统进行交互。它负责从用户那里获取输入并显示输出。

Shell 脚本是按执行顺序编写的一系列命令。这些脚本可以包含函数、循环、命令和变量。脚本对于简化一系列复杂的命令和重复性任务很有用。

在本文中,您将学习如何在 Linux 中为命令行创建和执行 shell 脚本。

先决条件

要完成本教程,您需要:

  • 熟悉使用终端。
  • 熟悉文本编辑器。
  • 熟悉 chmod、mkdir 和 cd 等命令。

入门

需要使用扩展名 .sh 保存 shell 脚本。

该文件需要以 shebang 行 (#!) 开头,让 Linux 系统知道哪个解释器用于 shell 脚本。

对于支持 bash 的环境,请使用:

#!/bin/bash 

对于支持 shell 的环境,使用:

#!/bin/sh

本教程假定您的环境支持 bash。

Shell 脚本也可以有注释以增加可读性。一个好的脚本总是包含注释,以帮助读者准确理解脚本的作用以及设计选择背后的原因。

创建和运行基本 Shell 脚本

您可以使用 vi 编辑器、cat 命令或文本编辑器创建 shell 脚本。

在本教程中,您将学习如何使用 vi 创建 shell 脚本:

  1. vi basic_script.sh

这将启动 vi 编辑器并创建一个 basic_script.sh 文件。

然后,按键盘上的 i 启动 INSERT MODE。添加以下行:

#!/bin/bash
whoami
date

此脚本运行命令 whoami 和 date。 whoami 显示活动的用户名。 date 显示当前系统时间戳。

保存并退出 vi 编辑器:

  • 按 ESC
  • 键入 :(冒号字符)
  • 输入wq
  • 按 ENTER

最后,您可以使用以下命令运行脚本:

  1. bash basic_script.sh

您可能会得到类似于以下内容的输出:

Output
root Fri Jun 19 16:59:48 UTC 2020

第一行输出对应于 whoami 命令。第二行输出对应于 date 命令。

您还可以在不指定 bash 的情况下运行脚本:

  1. ./basic_script.sh

以这种方式运行文件可能需要用户先授予权限。使用 bash 运行它不需要此权限。

Output
~bash: ./basic_script.sh: Permission denied

命令 bash filename 只需要文件的read 权限。

而命令 ./filename 将文件作为可执行文件运行,并且需要 execute 权限。

要执行脚本,您需要更新权限。

  1. chmod +x basic_script.sh

此命令应用 chmod 并为当前用户提供 x(可执行)权限。

在 Shell 脚本中使用变量

脚本可以包含用户定义的变量。事实上,随着脚本变得越来越大,拥有明确定义的变量和具有自我描述性名称的变量是必不可少的。

将以下行添加到脚本中:

#!/bin/bash
# This is a comment

# defining a variable
GREETINGS="Hello! How are you"
echo $GREETINGS

GREETINGS 是定义的变量,稍后使用 $(美元符号)访问。变量被赋值的行中不应有空格。

运行脚本:

  1. bash basic_script.sh

这打印出分配给变量的值:

Output
Hello! How are you

当脚本运行时,GREETINGS 被定义和访问。

从命令行读取输入

可以使 Shell 脚本与从命令行接受输入的能力交互。您可以使用 read 命令将命令行输入存储在变量中。

将以下行添加到脚本中:

#!/bin/bash
# This is a comment

# defining a variable
echo "What is your name?"
# reading input
read NAME
# defining a variable
GREETINGS="Hello! How are you"
echo $NAME $GREETINGS               

变量 NAME 已用于接受来自命令行的输入。此脚本等待用户为 NAME 提供输入。然后打印 NAME 和 GREETINGS。

Output
What is your name? Sammy Sammy Hello! How are you

在此示例中,用户提供了名称为提示的名称:Sammy。

定义函数

用户可以在脚本中定义自己的功能。这些函数可以采用多个参数。

将以下行添加到脚本中:

#!/bin/bash
#This is a comment

# defining a variable
echo "What is the name of the directory you want to create?"
# reading input 
read NAME

echo "Creating $NAME ..."
mkcd ()
{
  mkdir "$NAME" 
  cd "$NAME"
}

mkcd
echo "You are now in $NAME"

此脚本要求用户提供目录名称。然后,它使用 mkdir 创建目录并 cd 进入它。

Output
What is the name of the directory you want to create? test_dir Creating test_dir ... You are now in test_dir

在此示例中,用户已通过输入提供提示:test_dir。接下来,该脚本使用该名称创建一个新目录。最后,脚本将用户的当前工作目录更改为 test_dir。

结论

在本文中,您学习了如何在 Linux 中为命令行创建和执行 shell 脚本。

考虑一些您经常执行的重复性或耗时的任务,这些任务可能会从脚本中受益。

使用命令行中的参数继续您的学习。

©2015-2025 艾丽卡 support@alaica.com