我正在尝试为我的 .bashrc 编写一个简单的函数,以简化我遇到的一个常见问题:
$ sudo apt-get install nltk
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package nltk
$ apt-cache search nltk
python-nltk - Python libraries for natural language processing
$ sudo apt-get install python-nltk
所以我写了这个:
function sagi(){
sudo apt-get install $1 || apt-cache search $1
}
但无论我做什么,在apt-get install
部分运行并因为找不到我要求的包而出错后,该功能完全退出。我什至尝试这样做:
function sagi(){
sudo apt-get install $1
echo $1
}
同样,在失败的 apt-get 运行后什么也没有。奇怪的是,当我运行时:
$ sudo apt-get install nltk || apt-cache search nltk
(在 bash 提示符下)一切都按预期工作。我究竟做错了什么?
编辑:该函数位于我的 .bashrc 文件的末尾,并在上面完整显示。我检查了,我的 .bashrc 没有set
在任何地方使用。(我最初怀疑这set -e
可能是罪魁祸首)。也没有陷阱,错误代码来自 $? 是 100。