Новые строки в скрипте почти всегда эквивалентны точкам с запятой:
mycmd.sh; ret=$?; rm -rf temp_files; exit $ret
В ответ на правку:
Кроме того, вы также можете использовать ловушку
и подоболочка:
( trap 'rm -rf temp_files' EXIT; mycmd.sh )
Ваша первая команда ссылается на версию 2016, которую вы удалили. Второй и третий сегменты ссылаются на версию 2017 года, которая, как вы продемонстрировали, работает должным образом.
bash
, как и другие оболочки, отслеживает, какие команды находятся в каком каталоге. (Это позволяет избежать поиска $PATH
при каждом вызове.) Теперь вы изменили целевой каталог, который вам нужно указать оболочке очистить кэш и начать заново
hash # Optionally, show the contents of the hash list
hash -r # Reset (clear) the hash list