Эхо для кодов состояния?
Я ищу такой инструмент, как echo
, но для кодов состояния
$ sts 120
$ echo $?
120
Я знаю, что вы можете использовать вложенную оболочку в среде, похожей на bash:
$ (exit 120)
$ echo $?
120
но есть ли способ сделать такое независимым от вашей оболочки?
2 ответа
Вы можете сделать очень простой скрипт, который проверяет, передан ли параметр, и в противном случае возвращает 0
,
#!/bin/bash
if [ $# -eq 1 ]; then
# There's no parameter
exit 0
else
exit $1
fi
Дать ему разрешение на выполнение (chmod +x returnscript.sh
). Способы вызова скрипта в другом скрипте:
Способ 1:
/path/to/returnscript.sh 100
retcode=$?
# retcode = 100
Способ 2:
/path/to/returnscript.sh
retcode=$?
# retcode = 0
Я не уверен, что понимаю вопрос. Похоже, вы ищете команду, состояние выхода которой вы можете указать в командной строке, без использования функциональности, встроенной в оболочку. Зачем? Есть ли какая-то оболочка, где (exit 120)
не работает?
Вот несколько возможностей:
awk 'BEGIN {exit 120}'
echo | sed 'q120'
sh -c "exit 120"
- Напишите свой собственный скрипт, который делает
exit "$1"
,