【发布时间】:2013-04-03 21:34:39
【问题描述】:
我正在尝试通过 ssh 连接到服务器,并检查 id_rsa.pub 是否存在。如果它不存在,我想运行 ssh-keygen,否则我什么都不想做。
我可以在 Tcl/Expect 中使用 send 运行简单的命令,如“cat”或“rm”,但是当我尝试执行类似操作时,它不起作用:
send "if [ ! -f $USER_SSH_PATH/id_rsa.pub ]; then CREATE_FILE=true; fi\r"
expect "# " { }
send "if $CREATE_FILE; then; ssh-keygen -t rsa -C $USER -f $USER_SSH_PATH/id_rsa\r"
...
我收到以下错误消息: # 无效的命令名“!” 在执行时 “!-f /root/.ssh/id_rsa.pub” 从内部调用
请问可以运行这样的命令吗?
【问题讨论】: