spawn ssh root@10.18.18.36 set timeout -1 expect "*password:" send "11111\n" expect "#*" { send "cd /data/cpdn\r" send 'sed -i "s/1111/cpdn/g" index.html\r' } expect eof 这个脚本里 执行报错 usage: send [args] string while executing sed命令没执行
时间: 2023-07-05 08:35:44 浏览: 71
expect中为send语句上加变量的代码
这个脚本的问题在于 `send` 命令后面需要跟字符串参数,但是在第6行中,`send` 命令后面的字符串参数 `'sed -i "s/1111/cpdn/g" index.html\r'` 中包含了单引号,导致 `expect` 无法正确解析这个字符串参数,从而导致 `send` 命令执行失败。
为了解决这个问题,你可以将字符串参数改为双引号,或者使用转义字符 `\` 来转义单引号,例如:
```
send "sed -i 's/1111/cpdn/g' index.html\r"
```
或:
```
send 'sed -i '\''s/1111/cpdn/g'\'' index.html\r'
```
这样就可以正确执行 `sed` 命令了。
阅读全文