Eco para códigos de status?

Eco para códigos de status?

Estou procurando uma ferramenta como echo, mas para códigos de status

$ sts 120
$ echo $?
120

Eu sei que você pode usar um subshell em um ambiente semelhante ao bash:

$ (exit 120)
$ echo $?
120

mas existe uma maneira de fazer isso independente do seu shell?

Responder1

Você poderia fazer um script muito simples que verifica se um parâmetro é passado e retorna 0.

#!/bin/bash

if [ $# -eq 1 ]; then
  # There's no parameter
  exit 0
else
  exit $1
fi

Dê permissões de execução ( chmod +x returnscript.sh). Formas de invocar o script dentro de um script diferente:

Caminho 1:

/path/to/returnscript.sh 100
retcode=$?
# retcode = 100

Caminho 2:

/path/to/returnscript.sh
retcode=$?
# retcode = 0

Responder2

Não tenho certeza se entendi a pergunta. Você parece estar procurando um comando cujo status de saída possa ser especificado na linha de comando, sem usar a funcionalidade incorporada ao shell. Por que? Existe algum shell onde (exit 120)não funciona?

Aqui estão algumas possibilidades:

  • awk 'BEGIN {exit 120}'
  • echo | sed 'q120'
  • sh -c "exit 120"
  • Escreva seu próprio script que faça isso exit "$1".

informação relacionada