Как насчет добавления exec bash
в конце Вашего .cshrc
?
Остерегайтесь, тем не менее, что это является не совсем безрисковым, таким образом, Вы могли бы хотеть сделать это в одном окне/сессии при тестировании результатов в другом, таким образом, у Вас есть шанс возвращения его. (Или имейте администратора сайта поблизости).
Вы добираетесь 0 или 1. В коде выхода.
bash-4.2$ test 4 -lt 6
bash-4.2$ echo $?
0
bash-4.2$ test 4 -gt 6
bash-4.2$ echo $?
1
Обновление: Для хранения кода выхода для более позднего использования просто присвойте его переменной:
bash-4.2$ test 4 -lt 6
bash-4.2$ first=$?
bash-4.2$ test 4 -gt 6
bash-4.2$ second=$?
bash-4.2$ echo "first test gave $first and the second $second"
first test gave 0 and the second 1
Иначе
test 4 -lt 6 && echo 1 || echo 0
Но будьте осторожны в этом случае. Если test
успех возвратов и echo 1
сбои echo 0
будет выполняться.
Если Вы хотите результат сравнения по стандарту вместо кода выхода, можно использовать expr(1)
команда:
$ expr 4 '<=' 6
1
Две вещи отметить:
test
. test
возвраты 0 для истинного (который является стандартом для кодов выхода), но expr
печать 1 для истинного.test
встроенная оболочка, который значительно быстрее (приблизительно 50 раз на моей машине), чем test
и expr
исполняемые файлы от coreutils пакета.
– manatwork
11.10.2012, 14:18
$?
переменная - по крайней мере, пока это не перезаписывается следующей командой, которую Вы выполняете. – Shadur 11.10.2012, 10:45$PIPESTATUS
массив для получения результата нескольких команд в конвейере.$?
будет быть результатом последней команды в конвейере еслиpipefail
опция выключена (значение по умолчанию). – l0b0 11.10.2012, 12:26if test 4 -lt 6; then echo test succeeeded; else echo test failed; fi
– Wildcard 27.10.2016, 21:57