使用这个脚本 #!/usr/bin/expect -f cd /home/111 spawn scp -r * root@10.18.18.1:/data/111 set timeout -1 expect "*password:" send "1111\n" 在执行的时候报错 *: No such file or directory
时间: 2024-02-05 09:02:25 浏览: 29
这个错误是因为在你执行的脚本中,使用了`cd`命令,但是`cd`命令是shell命令,而不是expect命令。因此,你需要将`cd`命令去掉,并使用`set`命令设置当前工作目录。
下面是修改后的脚本:
```bash
#!/usr/bin/expect -f
# 设置工作目录
set workDir /home/111
cd $workDir
# 定义变量
set host "10.18.18.1"
set user "root"
set password "1111"
set localPath "."
set remotePath "/data/111"
# 执行scp
spawn scp -r $localPath $user@$host:$remotePath
expect {
"yes/no" { send "yes\r"; exp_continue }
"password:" { send "$password\r" }
}
expect "100%"
expect eof
```
在这个脚本中,我们使用`set`命令设置了当前工作目录,然后执行了scp命令,将当前目录下的所有文件和子目录上传到远程主机。我们使用`expect`命令匹配密码输入提示,并发送密码。最后,我们等待文件传输完成,并使用`expect eof`命令关闭连接。
注意,如果你想要上传的是当前目录下的所有文件和子目录,应该将`localPath`设置为`.`,而不是`*`。因为`*`会展开为当前目录下的所有文件和子目录,而不是一个整体的路径。
相关问题
#!/usr/bin/expect -f和#!/bin/bash
引用中给出了一个脚本的示例,其中#!/usr/bin/expect -f是脚本的第一行,用来指定使用expect作为脚本的解释器。这意味着这个脚本将使用expect的语法和功能来执行。而#!/bin/bash是另一种脚本的解释器,用于指定使用bash作为脚本的解释器。bash是一种常用的Unix shell程序,用于执行命令和脚本。
简而言之,#!/usr/bin/expect -f用于指定使用expect解释器来执行脚本,而#!/bin/bash用于指定使用bash解释器来执行脚本。两者都是根据脚本的需要来选择合适的解释器。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* *2* *3* [shell阶段-day12-expect](https://blog.csdn.net/qq_23995091/article/details/113571554)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
[ .reference_list ]
#!/usr/bin/tcsh -f 与#!/usr/bin/tcsh的区别
#!/usr/bin/tcsh -f 与#!/usr/bin/tcsh的区别在于是否使用了"-f"参数。
#!/usr/bin/tcsh -f:使用了"-f"参数,表示在执行脚本时,不会读取用户的配置文件(例如~/.tcshrc),从而跳过配置文件中的设置,直接执行脚本中的命令。
#!/usr/bin/tcsh:没有使用"-f"参数,表示在执行脚本时,会读取用户的配置文件,并按照配置文件中的设置执行脚本中的命令。
使用"-f"参数可以确保脚本的执行与环境设置无关,对于一些需要独立环境的脚本来说,这样的设置可能更加可靠。然而,有些情况下,可能需要加载用户的配置文件来获取特定的环境变量或别名设置等。
所以,要根据具体的需求来决定是否使用"-f"参数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)