用于 apt-get 更新/apt-get 升级的 .sh 文件

sno*_*sel 3 upgrade command-line apt bash

这可能是一个简单的问题,但...

我有一个 update.sh 文件,内容如下:

sudo apt-get update
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

当我使用 ./update.sh (将其设置为可执行文件后)运行它时,它要求我输入我的 sudo 密码。这会运行两个命令吗,我基本上只能运行一次这个脚本并处理我的 apt-get update/upgrade 命令?

谢谢大家

Ser*_*nyy 5

sudo工作方式是默认情况下它会在 15 分钟内再次询问密码。所以是的,使用这两个命令,将工作得很好,并且取决于apt-get update运行多长时间,您需要输入一次密码。

但是,这不是最佳实践。相反,我建议您使用 sudo 运行整个脚本,而不是将它放在文件中的每个命令的前面。换句话说,脚本应该是:

#!/bin/bash
apt-get update
apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

并运行它

sudo  ./my_script.sh
Run Code Online (Sandbox Code Playgroud)

请注意,这里我们使用#!/bin/bashline 来使用bashshell 作为解释器。这与/bin/sh. 对于您在做什么,它没有区别,但是如果您需要知道它们在某些运算符的语法上有所不同。

但是,更好的方法是完全摆脱脚本并使用可以执行所需操作的函数或别名。脚本实际上适用于您想要重用的大量代码。对于 2 - 3 行,~/.bashrc文件中的函数或别名就足够了。

就我个人而言,我会在我的 ~/.bashrc

alias agu="sudo bash -c 'apt-get update && apt-get upgrade'"
Run Code Online (Sandbox Code Playgroud)