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