gpt4 book ai didi

linux - 期待 bash 脚本中的命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:38 26 4
gpt4 key购买 nike

我在使用 bash 变量执行 expect 命令时遇到问题。我有脚本参数给定的位置,我需要通过 expect -c 在发送命令中使用它。但我需要用 "给它,所以实际上发送命令认为我已经结束输入,并且在关闭引号后将命令的其余部分识别为额外字符。事情就像:

#!/bin/bash

SIGN=ppp

expect -cd 'spawn ssh user@host
expect "Password:"
send -- "pass\r"
expect "*~>"
send -- "find /local/"$SIGN"/ -maxdepth 1 -type d -mtime +30 |xargs rm -rfv\r"
expect "*~>"
send -- "exit\r"'

知道如何在不使用双引号的情况下将变量从 bash 发送到 expect 吗?顺便说一句 - 我不能使用 ssh key

最佳答案

你可以这样转义 '"$SIGN"':

例如:

#!/bin/bash

SIGN=ppp

expect -c 'spawn ssh tiago@localhost
expect "password:"
send -- "mypass\r"
expect "~"
send -- "echo '"$SIGN"'\r"
expect "^ppp"
send -- "exit\r"'

关于linux - 期待 bash 脚本中的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327383/

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