2016-07-05 6 views
-1

Ich habe Shell-Skript-Test hat unterhalb dem Inhalt:nicht, wenn verwendet, arbeitet nach dem Aufruf von Shell-Skript

read -s -n 1 -p "press enter to continue..." key 
if [[ $key = "" ]]; then 
    echo 'You pressed enter!' 
else 
    echo "You pressed '$key'" 
fi 

ich oben Skript nenne mit folgenden Skript. Aber wenn ich unten Skript ausführen, dann hängt es an dem Eingangspegel

#!/bin/bash 
/usr/bin/expect <<EOF 
spawn ./test.sh 
expect "Press enter to continue..." 
send "\r" 
EOF 
+0

lernen http://shellcheck.net verwenden ** vor ** Sie Ihren Code hier posten ;-). Viel Glück. – shellter

Antwort

1

ANTWORT: Sie haben vergessen, ein then in Ihrer if-Anweisung.

BTW:
Sie REPLY Variable wie so verwenden können:

#!/bin/bash 
read -r -n 1 -p "press enter to continue..." 
if [[ $REPLY = "" ]] ; then 
    echo 'You pressed enter!' 
else 
    echo "You pressed '$REPLY'" 
fi 
+0

wurde dann während der Eingabe verpasst. Ich rufe Shell-Skript A von Shell-Skript B. Shell-Shell A erfordert Benutzereingaben während der Ausführung. Also ich möchte erwarten, Benutzereingaben zur Verfügung zu stellen. –

+0

Ich verstehe nicht, was meinst du mit 'expect'? Ihr Skript sollte funktionieren, wenn Sie 'then' nachher hinzufügen, wie in meinem Beispiel. – lewiatan

Verwandte Themen