Grundsätzlich rufen Sie mein Bash-Skript auf, indem Sie mybashscript
in die Konsole tippen. Dann geht es los:
Welcome to mybashcript! Choose an option (login|logout|view|erase|quit|):
Der Benutzer gibt dann die gewünschten Eingaben ein, die dann ein Python-Skript weiter unten in der jeweiligen if-Struktur der jeweiligen Option aktivieren.
Was ich mich wundere ist, wie kann ich es so machen, dass der Benutzer nur etwas wie mybashscript login
oder eingeben muss (wenn er das Programm vorher benutzt hat) mybashscript view
.
Jedes Wort, das nach dem Namen des Bash-Skripts hinzugefügt wird, wird dann als erste Eingabe im Skript selbst verwendet. Ist das möglich?
Hier ist mein Skript, ich verstehe nicht genau, wie man $ 1 einfügt, ohne es auch fragen zu lassen, ob es kein Argument gibt.
#!/bin/bash
echo -n "Hello $USER, welcome to the guestbook! Choose an option (sign|view|save|erase): "
read option
if [ "$option" == "sign" ]; then
python /usr/local/bin/guestbook.data/sign_guestbook.py
elif [ "$option" == "view" ]; then
python /usr/local/bin/guestbook.data/view_guestbook.py
elif [ "$option" == "save" ]; then
python /usr/local/bin/guestbook.data/save_guestbook.py
elif [ "$option" == "erase" ]; then
python /usr/local/bin/guestbook.data/erase_guestbook.py
else
echo "Sorry, I didn't understand that."
fi
shift
löscht der Befehl $ 1 und verschiebt die anderen nach unten, $ 2 wird zu $ 1, $ 3 wird zu $ 2…