У меня есть файл, содержащий набор команд setenv (сгенерированный из другого скрипта).
a. csh
setenv XYZ "${ABC} ab"
setenv PQR "test"
Затем я запускаю source a.csh
в терминале Linux
Но если переменная $ AB C не установлена, исходные ошибки выдаются с неопределенной переменной AB C и завершаются без запуска следующий набор команд в. csh (например, setenv PQR "test"
).
I wi sh, чтобы продолжить выполнение этого набора команд после setenv XYZ "${ABC} ab"
.
Я попытался добавить перенаправление ошибок для команды setenv, но не сработало
setenv XYZ "${ABC} ab" 2 > /dev/null
Я обнаружил, что ошибка исходной команды может быть обнаружена с помощью
source a.csh & echo $?
Но при этом игнорируются команды в файле, следующие за той, которая содержит ошибку, поскольку она выходит из команды при обнаружении ошибки.
Это небольшой пример из того, как выглядит мой csh файл. Но он может содержать длинный список setenvs.
Проверка существования $ AB C, а затем запуск setenv невозможен.