Эхо для кодов статуса?

Эхо для кодов статуса?

Я ищу инструмент вроде 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".

Связанный контент