2016-03-25 10 views
3

ich versuchte mit diesem Code:Lese: Illegale Option es in Shell-Scripting

#!/bin/bash 
read -s "Password: " password 

Mit Befehl:

run sh init.sh 

es wirft einen Fehler: read: Illegal option -s. Irgendeine Hilfe.

+1

Es hat nichts mit Ruby zu tun. – sawa

+0

Also was ist mit Shell? – Vicky

Antwort

0

Sie benötigen -p Option zu verwenden, für prompt:

read -sp "Password: " password 

Per help read:

-p prompt output the string PROMPT without a trailing newline before 
      attempting to read 
+1

Ich habe gerade eine neue Option für 'read' entdeckt. +1 für dich. – SLePort

+0

Aber zu schlecht für die fehlende abschließende Zeilenumbrüche. – SLePort

+3

Nicht das Problem hier an sich. –

5

Ich nehme an, Sie Debian/Ubuntu verwenden, oder ein BSD-Derivat?

Wenn Sie einen Befehl wie run sh init.sh ausführen (obwohl ich selbst nicht mit diesem run Befehl vertraut bin), überschreiben Sie den #!/bin/bash shebang. In Ihrem Fall sh ist eine streng konforme POSIX-Shell wie dash, wobei das einzige Argument zu read, das keine Erweiterung ist, -r ist.

Vielleicht möchten Sie stattdessen run bash init.sh verwenden?