¿Echo para códigos de estado?

¿Echo para códigos de estado?

Estoy buscando una herramienta como echo, pero para códigos de estado.

$ sts 120
$ echo $?
120

Sé que puedes usar un subshell en un entorno similar a bash:

$ (exit 120)
$ echo $?
120

pero ¿hay alguna manera de hacerlo independientemente de tu caparazón?

Respuesta1

Podrías hacer un script muy simple que verifique si se pasa un parámetro y, en caso contrario, lo devuelve 0.

#!/bin/bash

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

Dale permisos de ejecución ( chmod +x returnscript.sh). Formas de invocar el script dentro de un script diferente:

Camino 1:

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

Camino 2:

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

Respuesta2

No estoy seguro de entender la pregunta. Parece que está buscando un comando cuyo estado de salida pueda especificar en la línea de comando, sin utilizar la funcionalidad integrada en el shell. ¿Por qué? ¿Hay algún caparazón que (exit 120)no funciona?

Aquí hay algunas posibilidades:

  • awk 'BEGIN {exit 120}'
  • echo | sed 'q120'
  • sh -c "exit 120"
  • Escribe tu propio guión que lo haga exit "$1".

información relacionada