Я пытаюсь написать простую функцию для моего .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.