Echo für Statuscodes?

Echo für Statuscodes?

Ich suche ein Tool wie echo, aber für Statuscodes

$ sts 120
$ echo $?
120

Ich weiß, dass Sie in einer Bash-ähnlichen Umgebung eine Unter-Shell verwenden können:

$ (exit 120)
$ echo $?
120

aber gibt es eine Möglichkeit, dies unabhängig von Ihrer Shell zu tun?

Antwort1

Sie könnten ein sehr einfaches Skript erstellen, das prüft, ob ein Parameter übergeben wurde und andernfalls zurückgibt 0.

#!/bin/bash

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

Geben Sie ihm Ausführungsberechtigungen ( chmod +x returnscript.sh). Möglichkeiten, das Skript innerhalb eines anderen Skripts aufzurufen:

Weg 1:

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

Weg 2:

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

Antwort2

Ich bin mir nicht sicher, ob ich die Frage verstehe. Sie scheinen nach einem Befehl zu suchen, dessen Beendigungsstatus Sie in der Befehlszeile angeben können, ohne die in die Shell integrierte Funktionalität zu verwenden. Warum? Gibt es eine Shell, bei der das (exit 120)nicht funktioniert?

Hier sind einige Möglichkeiten:

  • awk 'BEGIN {exit 120}'
  • echo | sed 'q120'
  • sh -c "exit 120"
  • Schreiben Sie Ihr eigenes Skript, das dies tut exit "$1".

verwandte Informationen