2017-04-04 3 views
1
#!/usr/bin/expect -f 

set arguments [lrange $argv 2 end] 
expect "hello" 
send "$arguments\r\n" 

Versuchen, doppelte Anführungszeichen als Argumente an Skript übergeben. Oben funktioniert nicht wie erwartet.Wollen doppelte Anführungszeichen als Argument übergeben

Wie ich das Skript nenne ist

./ExpectScript.sh \" 1 \" 2 3 4 

Ausgabe

hello 
{"} 2 3 4 

Erwartete Ausgabe

hello 
" 2 3 4 
+0

Doppelte Anführungszeichen sind speziell für 'Tcl'. Verwenden Sie ein einzelnes Anführungszeichen und entfernen Sie es. './ExpectScript.sh \ '1 \' 2 3 4' – Dinesh

+0

Danke für die Antwort. Es kam zurück: 3 4. Meine Erwartung ist, die doppelte Quote in der Ausgabe zu sehen, wie: "2 3 4 –

Antwort

0

lrange Rückgabeliste ist. Und du druckst Liste. Wenn Sie eine Zeichenfolge möchten, können Sie join verwenden.

set arguments [join [lrange $argv 2 end]] 
+0

Großartig! Es funktioniert gut, danke eine Million! –

Verwandte Themen