gpt4 book ai didi

bash - 在 heredoc 中使用 expect 命令

转载 作者:行者123 更新时间:2023-11-29 09:14:34 24 4
gpt4 key购买 nike

对于以下将函数添加到 bash 配置文件的微型 expect 脚本:

chai() {
expect <<- EOF
spawn ssh myuser@myserver
expect ': $'
send 'mypassword\r'
EOF
}

我们得到:

bash: /etc/profile: line 409: syntax error: unexpected end of file

那个脚本有什么问题?

最佳答案

我通常期望 heredoc终止符 (EOF) 位于行的开始,例如

chai() {
expect <<- EOF
spawn ssh myuser@myserver
expect ': $'
send 'mypassword\r'
EOF
}

我看到你正在使用 <<-并来自链接文档:

The - option to mark a here document limit string (<<-LimitString) suppresses leading tabs (but not spaces) in the output. This may be useful in making a script more readable.

所以你应该检查脚本看看你是否有 TAB在你的命令之前。 EOF 遵循相同的规则。

cat <<-ENDOFMESSAGE
This is line 1 of the message.
This is line 2 of the message.
This is line 3 of the message.
This is line 4 of the message.
This is the last line of the message.
ENDOFMESSAGE
# The output of the script will be flush left.
# Leading tab in each line will not show.

关于bash - 在 heredoc 中使用 expect 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29803248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com