&& 连接符出现问题。它停止了连接。
我跑了:
sudo add-apt-repository ppa:igorgomes/ppa
sudo aptitude update
该aptitude update
命令开始生成屏幕输出错误(我不记得记录下来),从那时起序列就sudo aptitude update && sudo aptitude upgrade
停止工作了。具体来说,第一个命令执行了,但第二个命令没有执行。
我可以通过删除文件夹“/etc/apt/sources.list.d”中的相应文件来修复它,这样命令aptitude update
就可以再次正常工作,并且sudo aptitude update && sudo aptitude upgrade
组合也可以再次正常工作。
问题已经解决,但我真的很好奇为什么会这样?这不是我第一次遇到连接符 && 停止工作,我从未发现其背后的逻辑是什么。有没有人遇到过这种情况,能找出原因吗?
先感谢您
普克拉斯
答案1
我在学习其他问题时刚刚得到了正确答案,所以我会自己回答。
&& 表示只有第一个命令成功执行后,第二个命令才会运行。如果第一个命令抛出错误(即退出 1),则连接器不会将操作传递给序列中的下一个命令。
请记住,无论您是在屏幕输出(前台)上看到错误,还是无法通过屏幕输出(后台)看到错误,这都无关紧要。当是第二种情况时,即使您没有注意到,错误也会被抛出到 shell 解释器。
要检查命令是否返回错误。只需单独执行该命令,然后执行echo $?
。如果返回 1,则命令失败,您必须找出命令中出现的问题并修复它。
可以执行sudo aptitude update; sudo aptitude upgrade
以避免出现上述问题,但对于任何好奇的人来说,你都会知道发生了什么。
如果你想要更多有关命令退出含义的信息,你可以查看以下页面: http://tldp.org/LDP/abs/html/exit-status.html
(对此有大量的解释,所以如果不满意的话没有理由不去谷歌搜索)
无论如何,谢谢你们!你们给了我非常宝贵的帮助 :)