如何通过向终端发出一个请求来连续执行多个命令(不使用文件)?

如何通过向终端发出一个请求来连续执行多个命令(不使用文件)?

我可以(1)准备一个文件,其中输入的命令以行尾分隔;(2)使其可执行;(3)从文件系统管理器或终端运行它。

但对于不可重复和每次都不同的命令集来说,这是荒谬的。

我可以在一个请求中将这些命令输入到终端吗?

我不知道终端的行尾字符——Ctrl、Shift 或 Alt 加 Enter 不起作用。  

答案1

您可以用&&或分隔命令;

  • &&仅当前一个命令以状态 0 退出(成功)时才运行下一个命令:

    command1 && command2 && command3
    
  • ;运行每个命令,即使前一个命令以非零状态退出:

    command1; command2; command3
    

您可以根据需要组合这些分隔符。

答案2

如果您有兴趣在一个请求中将每个命令输入到各自的行中,则可以使用以下方法:

  • 以(这意味着:如果为真,则执行)开始您的请求(第一行)if :; then并按Enter;您的提示现在将变为,>并且不会执行任何操作。

  • 输入命令,每个命令后跟Enter

  • 使用 with fi(结束上述if条件)完成您的请求并按Enter。现在您的所有命令将按给定的顺序执行。

例子:

radu@Radu: ~ $ if :; then
> echo 'something'
> echo 'something else'
> echo 'List current directory contents:'
> ls
> echo 'Change current directory with root directory:'
> cd
> #finish
> fi
something
something else
List current directory contents:
Backups            Desktop           forma3d  Public      Untitled txt.txt~
bin                Documente         Music    Templates   Videos
configuration.php  examples.desktop  passwd~  tmp~
Downloads          file~             Poze     Ubuntu One
Change current directory with root directory:
radu@Radu: / $

答案3

首先,将 放在{一行上。
然后,插入命令。
然后,将 放在}新行上并按Enter。您的命令将被执行。

例子:

{
echo list
echo of
echo commands
echo to run at once
}

它将会打印(一次性打印所有内容,中间没有提示):

list
of
commands
to run at once

附注:{ .. }这是 Bash 命令分组语法。它通常与&&or ||(分别为“and”和“or”)一起使用

相关内容