![如何通过向终端发出一个请求来连续执行多个命令(不使用文件)?](https://linux22.com/image/1119156/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%90%91%E7%BB%88%E7%AB%AF%E5%8F%91%E5%87%BA%E4%B8%80%E4%B8%AA%E8%AF%B7%E6%B1%82%E6%9D%A5%E8%BF%9E%E7%BB%AD%E6%89%A7%E8%A1%8C%E5%A4%9A%E4%B8%AA%E5%91%BD%E4%BB%A4%EF%BC%88%E4%B8%8D%E4%BD%BF%E7%94%A8%E6%96%87%E4%BB%B6%EF%BC%89%EF%BC%9F.png)
我可以(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”)一起使用