Answers:
确实很简单-您需要分离命令。例如:
#!/bin/bash
sudo apt-get update
sudo apt-get upgrade
将更新软件包列表,然后更新软件包。另一个可能性是这样(可能更好,因为&&仅upgrade
在update
成功退出后才允许命令运行):
#!/bin/bash
sudo apt-get update && sudo apt-get upgrade
这应该运行命令以更新软件包列表,然后更新软件包本身。这将需要保存到文本文件中(例如updatescript
在主目录中)。然后可以通过运行以下命令使其可执行:
chmod +x ./updatescript
或通过右键单击该文件并使它在其属性中可执行:
并在终端中运行它:
./updatescript
笔记):
-y
该upgrade
命令有一个可用的选项(),因此在升级软件包之前不会提示。apt-get
在升级软件包之前,先检查一下正在做的事情是个好主意,因为它可能/会做一些愚蠢的事情或您不希望做的事情。可以通过运行找到有关此类选项的更多信息man apt-get
。
这也意味着使用终端运行脚本是更理想的,因为您可以检查正在更新的内容,然后运行它。如果您希望使用GUI方式运行更新,请使用软件中心,因为它就是它的用途。
只需在@Wilf的出色回答中添加几点,
您可以出于任何原因autostart
在paralell中运行命令,例如,OpenBox 的脚本可能如下所示:
#!/bin/bash
nitrogen --restore &
tint2 &
tilda
这将使用设置背景图像nitrogen
,同时启动面板tint2
和启动Quake3样式的下拉控制台tilda
。如果不需要在启动下一个程序之前完成程序,这将很有用。并非如此apt-get update
,apt-get upgrade
尽管如此!
注意&
每行末尾的符号。这将导致外壳程序将该进程派生到后台并继续执行。请注意&&
,它与基本上是一个and
符号command_1 && command_2
会有所不同,它将执行command_1
,如果成功退出,则仅运行run command_2
,而command_1 & command_2
在第一个之后第二个开始。
同样,您可以堆叠命令以使其顺序执行,如下所示:
#!/bin/bash
apt-get update
apt-get upgrade
这将运行apt-get upgrade
后apt-get update
的成品,但无论结果如何。因此,例如,即使更新因网络错误而退出,升级仍将运行。
您也可以使用以下;
符号在一行中完成此操作:apt-get update ; apt-get upgrade
。同样,此解决方案对于这些特定命令不是最佳选择,但在其他情况下可能会派上用场。
最后一点,您还可以中断包含以下内容的行&&
:
command_1 &&
command_2
这将与相同command_1 && command_2
。