我正在学习如何使用Linux命令 - 期待this tutorial之后。
#!/usr/bin/expect
set timeout 20
spawn "./addition.pl"
expect "Enter the number1 :" { send "12\r" }
expect "Enter the number2 :" { send "23\r" }
interact
这里的任何人都可以解释下面命令的作用。
spawn "./addition.pl"
顺便说一下,我找不到任何名为“./additon.pl”的文件,所以我无法成功运行该示例。
我不知道这个Perl是如何编写的,但是我想这个脚本(如jvperrin提到的,它可以是任何语言)应该从标准输入中读取并添加它们。 我使用Python,我试着编写adder.py。
#!/usr/bin/python
import sys
print int(sys.argv[1]) + int(sys.argv[2])
但是当我更改spawn“./add.py”时它仍然无效...
错误如下所示:
Traceback (most recent call last):
File "./add.py", line 3, in <module>
print int(sys.argv[1]) + int(sys.argv[2])
IndexError: list index out of range
expect: spawn id exp7 not open
while executing
"expect "Enter the number2 :" { send "23\r" }"
(file "./test" line 8)
答案 0 :(得分:1)
Spawn基本上会启动一个命令,所以你可以用命令的任何方式使用它。例如,您可以将其用作spawn "cd .."
或spawn "ssh user@localhost"
,而不是spawn "./addition.pl"
。
在这种情况下,spawn指令在addition.pl
中启动一个交互式perl程序,然后在程序启动后输入两个值。
这是我的ruby程序,可以正常工作:
#!/usr/bin/ruby
print "Enter the number1 :"
inp1 = gets.chomp
print "Enter the number2 :"
inp2 = gets.chomp
puts inp1.to_i + inp2.to_i