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"
.