Lio*_*.24 1 bash shell tcl expect
您知道是否可以在封装在 bash 脚本中的期望脚本中分配和打印期望变量。好吧,我知道这还不清楚,让我们看下面的例子:
#!/bin/bash
..some bash code..
/usr/bin/expect << EOF
set hello "abcd"
puts "$hello"
exit
EOF
Run Code Online (Sandbox Code Playgroud)
通常,它应该打印出“abcd”,因为这是变量“hello”的内容,但它什么也没打印出来......只是空白“\n”空格
lionel@pc:~$ ./call_to_bash_script.sh
lionel@pc:~$
Run Code Online (Sandbox Code Playgroud)
Expect 工作得很好,就像我尝试做的那样:将“abcd”打印出来。
lionel@pc:~$ ./call_to_bash_script.sh
abcd
lionel@pc:~$
Run Code Online (Sandbox Code Playgroud)
Heredocs 扩展了 bash 变量引用。$hello在expect 有机会看到它之前,Bash 就已经开始扩展了。您可以通过引用EOF分隔符来禁用变量扩展,如下所示:
/usr/bin/expect << 'EOF'
set hello "abcd"
puts "$hello"
exit
EOF
Run Code Online (Sandbox Code Playgroud)
或者通过转义变量引用:
/usr/bin/expect << EOF
set hello "abcd"
puts "\$hello"
exit
EOF
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9731 次 |
| 最近记录: |