Эхо для кодов состояния?

Я ищу такой инструмент, как 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",
Другие вопросы по тегам