Я испытываю эту странную проблему, когда мой статус выхода всегда возвращает 0, даже когда он не выполнялся успешно.статус выхода bash всегда 0
Я хочу, чтобы вывести состояние выхода на моей строке со следующим кодом:
function status() {
echo $?
}
export PS1="\$(status)>"
Когда я запускаю это, я получаю следующие выходные данные
0❯ pwd
/Users/tringuyen
0❯ ad
bash: ad: command not found
0❯ echo $?
127
ясно вторая последняя команда ad
Didn 't возвращает код состояния 0. Однако это то, что я получил от подсказки.
Кто-нибудь знает, что может быть здесь?
EDIT 6/20 11:57 утра: Проблема, кажется, что $?
не всегда 0
ни на что, кроме произошла ошибка в самой .bashrc
файл, который заставит его вернуть значение, отличное от 0
.
$ (status) выполняет команду в подоболочке - дочерний процесс. Пропустить $? в качестве параметра: $ (статус $?), а затем: echo $ 1 в вашей статусной функции. –
Код, написанный, как представляется, отлично работает для меня. Моя '$ BASH_VERSION' -' 4.2.20 (1) -release'. – IMSoP
Это нормально для меня, достаточно сделать это 'PS1 =" \ $?> "' –