在bash上下文中需要set变量
您知道是否可以在封装在bash脚本中的expect脚本中分配和打印expect变量吗。好的,这还不清楚,我知道,让我们看看下面的例子:在bash上下文中需要set变量,bash,shell,tcl,expect,Bash,Shell,Tcl,Expect,您知道是否可以在封装在bash脚本中的expect脚本中分配和打印expect变量吗。好的,这还不清楚,我知道,让我们看看下面的例子: #!/bin/bash ..some bash code.. /usr/bin/expect << EOF set hello "abcd" puts "$hello" exit EOF Expect工作得很好,就像我尝试做的那样:放上“abcd”并打印出来 lionel@pc:~$ ./call_to_bash_script.sh
#!/bin/bash
..some bash code..
/usr/bin/expect << EOF
set hello "abcd"
puts "$hello"
exit
EOF
Expect工作得很好,就像我尝试做的那样:放上“abcd”并打印出来
lionel@pc:~$ ./call_to_bash_script.sh
abcd
lionel@pc:~$
Heredocs扩展bash变量引用。在expect有机会看到它之前,Bash正在扩展
$hello
。您可以通过引用EOF
分隔符禁用变量扩展,如下所示:
/usr/bin/expect << 'EOF'
set hello "abcd"
puts "$hello"
exit
EOF
/usr/bin/expectherdocs展开bash变量引用。在expect有机会看到它之前,Bash正在扩展$hello
。您可以通过引用EOF
分隔符禁用变量扩展,如下所示:
/usr/bin/expect << 'EOF'
set hello "abcd"
puts "$hello"
exit
EOF
/usr/bin/expect如果将设置为hello“abcd”
放在expect
呼叫之前<代码>如果我像那样放在herdoc前面:/usr/bin/expect set hello“abcd”我应该更清楚,对不起。没问题;)我尝试了你的建议,但没有效果:“(@kenny,你在这里走错了方向。设置hello abcd
属于expect代码,因此在heredoc中。在bash中,设置hello abcd
将$1
设置为“hello”,将$2
设置为“abcd”,如果你将设置hello”abcd”
在expect
调用之前?如果我像那样放在herdoc前面:/usr/bin/expect set hello“abcd”我应该说得更清楚,对不起。没问题;)我尝试了你的建议,但没用:'(@kenny,你走错了方向。设置hello abcd
属于预期代码,因此在heredoc中。在bash中,设置hello abcd
将$1
设置为“hello”,将$2
设置为“abcd”
/usr/bin/expect << EOF
set hello "abcd"
puts "\$hello"
exit
EOF