我正在尝试 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"
...
我收到以下错误消息:# invalid command name "!" 在执行从内部调用的“!-f /root/.ssh/id_rsa.pub ”时
请问可以运行这样的命令吗?