Я ищу инструмент вроде echo
, но для кодов состояния
$ sts 120
$ echo $?
120
Я знаю, что можно использовать подоболочку в среде, похожей на bash:
$ (exit 120)
$ echo $?
120
но есть ли способ сделать это независимо от вашей оболочки?
решение1
Вы можете создать очень простой скрипт, который проверяет, передан ли параметр, и в противном случае возвращает 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
решение2
Я не уверен, что понял вопрос. Кажется, вы ищете команду, статус выхода которой можно указать в командной строке, не используя встроенную в оболочку функциональность. Почему? Есть какая-то оболочка, где это (exit 120)
не работает?
Вот некоторые возможности:
awk 'BEGIN {exit 120}'
echo | sed 'q120'
sh -c "exit 120"
- Напишите свой собственный сценарий, который это сделает
exit "$1"
.