我是我的 shell 脚本,我正在尝试删除scp命令的密码提示(如/sf/ask/32142771/#459225 中所示)这就是我到目前为止所拥有的:-
#!/usr/bin/expect
spawn scp $DESTINATION_PATH/exam.tar $SSH_CREDENTIALS':/'$PROJECT_INSTALLATION_PATH
expect "password:"
send $sshPassword"\n";
interact
Run Code Online (Sandbox Code Playgroud)
在运行脚本时,我收到错误
spawn: command not found
send: command not found
interact: command not found
Run Code Online (Sandbox Code Playgroud)
我也遇到了错误expect: command not found,然后我意识到路径expect不正确并且expect根本没有安装。所以,我做了yum install expect,更正了路径,错误消失了。但仍然无法消除其他 3 个错误。
Phi*_*l P 13
您正在错误地调用脚本。
如果你说:
bash scriptname
Run Code Online (Sandbox Code Playgroud)
然后 #! 行被忽略,bash 将文件视为 bash 指令。但这不是一个 bash 脚本,它是一个期望脚本。
这 #!line 只有在将脚本作为命令以自己的方式运行时才会被内核解释。
要么授予脚本执行权限,以便您只需调用./scriptname,要么使用该expect命令启动脚本。
小智 8
确保您之前有“期望”工具,如果没有,请执行此操作
# apt-get install expect
创建具有以下内容的脚本文件。(# vi /root/scriptfile)
spawn scp /path_from/file_name user_name_here@to_host_name:/path_to
expect "password:"
send put_password_here\n;
interact
使用“expect”工具执行脚本文件
# expect /root/scriptfile
| 归档时间: |
|
| 查看次数: |
82099 次 |
| 最近记录: |