0
是否知道是否可以在期望腳本中分配和打印expect變量並封裝在bash腳本中。好吧,這是不明確的,我知道,讓我們來看看下面的例子:期望在bash上下文中設置變量
#!/bin/bash
..some bash code..
/usr/bin/expect << EOF
set hello "abcd"
puts "$hello"
exit
EOF
通常情況下,它應該打印出「ABCD」,因爲這是變量「你好」的內容,但它打印我什麼..只是空白「\ n」個空間
[email protected]:~$ ./call_to_bash_script.sh
[email protected]:~$
Expect是工作以及如果我嘗試只是做:把「ABCD」這我打印出來。
[email protected]:~$ ./call_to_bash_script.sh
abcd
[email protected]:~$
而如果你把'設置你好「ABCD」'了'expect'前呼叫? ''EOF'(heredoc)將所有內容視爲一個字符串(在這種情況下爲'expect'腳本),所以它不會在那裏執行bash命令。 – Kenney
如果我在heredoc之前就這樣寫:/ usr/bin/expect set hello「abcd」<< EOF ...腳本嘗試將讀取集作爲文件:無法讀取文件「set」:沒有這樣的文件或目錄。 腳本的問題在於它需要從bash腳本中調用,並且需要將大量變量傳遞給expect腳本。我不想浪費時間解析期望腳本中的所有變量,爲什麼bash非常有用。我打電話給一個期望proc返回一個代碼(0或1),我需要測試它是否成功。我不能影響一個變量的值。 –
我應該更清楚,對不起。 「<< EOF'當然是命令的一部分。所以:'set hello「abcd」;/usr/bin/expect << EOF'。因此,將'set hello'放在'..一些bash代碼中.'。 ( – Kenney