2016-06-20 6 views
0

Ich versuche, einfache Grüße Skript in bash zu schreiben, um sicherzustellen, dass der Benutzer mindestens zwei Argumente zur Verfügung stellt. 1) Das erste Argument gibt an, wie lange wir warten möchten, bevor die Begrüßung gedruckt wird. 2) Das zweite Argument gibt an, welche Nachricht wir anzeigen möchten. Entschuldigung, ich bin ziemlich neu im Shell-Scripting.Einfache Bash Shell-Skript, um sicherzustellen, dass zwei Argumente

#!/bin/sh 
if[$# -ge 2] 
then 
    sleep $1 
    shift 
    banner $* 
else 
    echo "Usage: Greeing seconds word(s)" 
fi 
+0

[shellcheck.net] (http://shellcheck.net) ist ein großartiges Werkzeug zum Erfassen von Syntaxfehlern im Shell-Code. – mklement0

Antwort

5

sollten Sie verwenden:

#!/bin/sh 
if [ $# -ge 2 ] 
then 
    sleep $1 
    shift 
    banner $* 
else 
    echo "Usage: Greeing seconds word(s)" 
fi 

Sie fehlten:

  • ein Raum nach if
  • ein Raum um [ und ]
3

Wenn Sie wollen sicherstellen, dass zwei Argumente gegeben sind, verwenden ${2?}. Zum Beispiel:

echo First arg is ${1?Missing first argument}. 2nd arg is ${2?Missing 2nd argument} 
Verwandte Themen