我保持机器最新的通常命令相当冗长,如果任何命令需要很长时间,它可能会导致多个密码提示:
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove && sudo apt-get autoclean
我想将其缩短为一个命令(最好不使用全局别名)。
Solution基于@amra's answer和another tip:
sudo sh -c 'apt-get update && apt-get upgrade --yes && if [ -f /var/run/reboot-required ]; then echo You should reboot; fi'
答案 0 :(得分:18)
尝试
sudo sh -c "apt-get -y update;apt-get -y dist-upgrade;apt-get -y autoremove;apt-get -y autoclean"
答案 1 :(得分:1)
可以使用'&&'当且仅当'cmd1'被执行且没有错误时,运算符执行命令'cmd2':
(cmd1 && cmd2)
但这只能直接在bash中使用,前面没有'sudo'。
因此,为了按预期工作,我们可以使用以下命令:
sudo /bin/sh -c "apt-get update && apt-get dist-upgrade && apt-get autoremove && apt-get autoclean"
请注意,amra提出的答案与上述命令不同: 由“;”分隔的命令按顺序执行,而不考虑前一个命令的退出代码。 使用“&&”时要分离命令,请考虑退出代码。 因此,如果我们有“cmd1&& cmd2”,则仅当cmd1的退出代码为0(即cmd1未失败)时才执行cmd2。