从单个提示符一次运行多行 Shell 代码


您可以使用 shell 脚本或使用 bash 或 sh 命令等命令行工具在单个提示符下一次执行多行 shell 代码。

要创建 shell 脚本,您可以使用文本编辑器编写代码并将其保存为 .sh 文件扩展名。例如,您可以创建一个名为“script.sh”的文件并添加以下代码:

#!/bin/bash
echo "Hello, World!"
echo "This is a shell script."

然后,您可以使用命令 bash script.sh 或 sh script.sh 运行脚本。

另一种方法是使用 << 符号(也称为 here-string),它允许您将多行文本作为标准输入传递给命令。例如:

bash << EOF
echo "Hello, World!"
echo "This is a shell script."
EOF
You can also use << with other commands, like this

cat << EOF
Line 1
Line 2
Line 3
EOF

您可以将 here-doc 语法与任何从标准输入读取的命令一起使用。

多行代码技术

有几种技术可用于在 shell 脚本或命令提示符下编写多行代码。一些最常见的包括:

使用文本编辑器 - 您可以使用 nano、vi 或 emacs 等文本编辑器编写代码,并将其保存为 .sh 文件扩展名的文件。然后,您可以通过运行 bash script.sh 或 sh script.sh 来执行脚本。

使用 \ 字符 - 您可以在每行末尾使用 \ 字符来指示命令在下一行继续。例如:

echo "This is a very long command" \
     "that spans multiple lines"

使用括号 - 您可以使用括号将命令组合在一起并跨越多行。例如:

 (echo "This is the first line"
 echo "This is the second line")

使用 ; - 您可以使用 ; 分隔命令并在同一行执行它们

echo "This is first command"; echo "This is second command"

使用 && - 您可以使用 && 运行多个命令,其中每个命令仅在前面的命令成功时才运行

command1 && command2 && command3

使用 || - 您可以使用 || 运行多个命令,如果第一个命令失败,则运行第二个命令

command1 || command2

使用 << 符号 (here-string) - 如前所述,您可以使用 << 符号将多行文本作为标准输入传递给命令。

bash << EOF
echo "Hello, World!"
echo "This is a shell script."
EOF

每种技术都有其自身的优点和缺点,您应该选择最适合您需求并在您的用例中具有最佳可读性的技术。

使用反斜杠

使用反斜杠 (\) 是在 shell 脚本或命令提示符下编写多行代码的常用技术。

例如,您可以使用反斜杠将长的 echo 命令拆分为多行:

echo "This is a very long command that spans multiple lines" \
     "and is broken up into multiple lines for readability"

您还可以使用反斜杠将包含多个参数或选项的长命令拆分为多行。例如:

command --option1 value1 \
         --option2 value2 \
         --option3 value3

使用括号和花括号

使用括号和花括号是在 shell 脚本或命令提示符下编写多行代码的另一种常用技术。

括号用于将命令组合在一起并将其作为单个单元执行。例如,您可以使用括号将多个 echo 命令组合在一起:

(echo "This is the first line"
 echo "This is the second line")

花括号用于创建一起执行的命令块。它类似于使用括号,但是使用花括号,您可以为块命名,然后以后将其作为单个命令引用。例如:

# Define a block of commands
block_of_commands() {
   echo "This is the first command"
   echo "This is the second command"
}

# Execute the block of commands
block_of_commands

括号和花括号都可用于创建可多次执行的可重用代码块,并使用不同的参数或在不同的上下文中执行。

使用 EOF 标记

使用 EOF (end-of-file) 标记是在 shell 脚本或命令提示符下编写多行代码的一种技术。

例如,您可以使用 EOF 标记创建一个简单的脚本,该脚本打印“Hello, World!”和“This is a shell script.”:

bash << EOF
echo "Hello, World!"
echo "This is a shell script."
EOF

您还可以将 EOF 标记与其他命令一起使用,例如 cat 来打印文件的内容:

cat << EOF
Line 1
Line 2
Line 3
EOF

EOF 标记技术类似于使用文本编辑器编写代码并将其保存为 .sh 文件扩展名的文件,但它允许您一步完成代码的编写和执行。

使用双与号

使用双与号 (&&) 是在 shell 脚本或命令提示符下编写多行代码的一种技术。双与号运算符允许您连续运行多个命令,其中每个命令仅在前面的命令成功时才运行。

例如,您可以使用双与号运算符运行一个命令来检查文件是否存在,然后运行另一个命令,该命令仅在文件存在时才运行:

test -e file.txt && echo "file exists"

您还可以使用双与号运算符将多个命令链接在一起,其中每个命令仅在前面的命令成功时才运行:

command1 && command2 && command3

使用分号

使用分号 (;) 是在 shell 脚本或命令提示符下编写多行代码的一种技术。分号用于分隔命令并在同一行执行它们。

例如,您可以使用分号在同一行运行多个 echo 命令:

echo "This is first command"; echo "This is second command"

或者您可以使用分号运行不同类型的多个命令:

ls -l; echo "Hello World!"; pwd

当您想按特定顺序运行多个命令并且您不关心任何特定命令的成功或失败时,此技术很有用。

结论

在 shell 脚本或命令提示符下编写多行代码可以使用多种技术完成,包括使用文本编辑器,使用 \ 字符,使用括号和花括号,使用 << 符号 (here-string),使用 ;,&& 和 ||。每种技术都有其自身的优点和缺点,重要的是选择最适合您需求并在您的用例中具有最佳可读性的技术。

更新于:2023年1月24日

21K+ 浏览量

开启您的职业生涯

完成课程获得认证

开始学习
广告