linux异常(六):expect错误 bash: spawn: command not found;couldn‘t read file

忘是亡心i 2023-09-28 23:16 47阅读 0赞

前言

问题出现的根源是执行脚本的姿势不对,伤害不大,侮辱性挺强,一起来看看吧!

如果,你对Expect的安装,及其精美案例,比较感兴趣,点击这里!

报错信息

[root@RHEL7 expect]# . ssh.exp
bash: spawn: command not found…
couldn’t read file “{“: no such file or directory
bash: yes/no: No such file or directory

问题根源

在执行脚本时,用的是#. file.exp(错误运行方法) 而不是 #./file.exp(正确运行方法)。

问题就出在这个斜杠上。

扩展

shell运行的5种方式

第一种使用绝对路径执行

第二种使用相对路径执行,如./的方式

第三种使用 sh命令来执行 格式 sh 脚本名 不需要执行权限 -x参数(显示执行过程)

第四种使用 . (空格)脚本名称的方式执行 不需要执行权限 . a.sh

第五种使用 source 脚本名称 不需要执行权限(主要用于生效配置文件)

案例中的expect用第四种方法 .(空格)来执行就会报错:

  1. [root@RHEL7 expect]# . ssh.exp
  2. bash: spawn: command not found...
  3. couldn't read file "{": no such file or directory
  4. bash: yes/no: No such file or directory

第二种,相对路径的方式执行就可以了(需要提前对脚本文件chmod +x 添加执行权限)。

注:普通的bash shell,以上5种执行方法均可,expect就没这么好使了,优先选第二种方式!

至此问题解决

尾言

版本在迭代,学习的脚步不能停,一旦停下,储备知识可能就过时了,要做到时时新事事新,及时更新自己的技术储备,加油少年!

如果你觉得还不错,赶快点赞收藏吧!

附注

1、Linux技巧(五):expect安装与介绍 | 精美案例 | 详解

发表评论

表情:
评论列表 (有 0 条评论,47人围观)

还没有评论,来说两句吧...

相关阅读