Захватите результат функции bash и дайте ей выйти

Вы не можете просто удалить его.

Существует страница https://packages.ubuntu.com, где вы можете искать пакеты и файлы. На этой странице можно узнать, что на Ubuntu 18.04 /usr/bin/convertпредоставляется пакет graphicsmagick -imagemagick -compat (1.3.28 -2). Чтобы удалить convert, вы должны удалить этот пакет. Теперь начинается сложная часть.

Этот пакет был (, вероятно, )установлен, потому что что-то еще, что вы установили, требовало его установки. Эта другая часть программного обеспечения зависит от него. Пока у вас установлена ​​эта другая часть программного обеспечения, ваша ОС будет продолжать -установку graphicsmagick-imagemagick-compat.

Вам, вероятно, лучше обернуть свое приложение ruby, чтобы вызовы convertзаканчивались не версией, установленной вашей ОС, а пользовательской установкой imagemagick 6.

Согласно packages.ubuntu.com, Bionic (, также известная как Ubuntu 18.04 LTS ), поставляется с Imagemagick версии 6,см.

Я думаю, что довольно странно, что ваш Graphicsmagick сообщается как Imagemagick. Сначала вам нужно выяснить, как вы установили Imagemagick, а затем вы можете спросить, как отменить этот конкретный процесс.

2
23.03.2020, 10:28
2 ответа

Это связано с тем, что $(crash)выполняет crashв подоболочке, поэтому exitприменяется к подоболочке, а не к вашему сценарию.

Какой смысл записывать вывод в переменную, если вы не будете ее использовать, потому что сценарий все равно завершился?

4
28.04.2021, 23:19

Это должно решить вашу проблему:

echo before
x=$(crash) || exit       # if crash give -gt 0 value then exit with the same value
echo after
1
28.04.2021, 23:19

Теги

Похожие вопросы