尝试运行.sh文件时出现错误
第2行:生成:未找到命令 “: 没有这样的文件或目录 bash.sh:第3行:期望:找不到命令 bash.sh:第4行:发送:找不到命令
#!/usr/bin/expect -f
spawn sftp -o IdentityFile=MyFile.ppk [email protected]
expect "XXX.XXX.XXX.XXX.gatewayEnter passphrase for key 'MyFile.ppk.ppk':"
send "myPassword"
知道为什么会发生吗?
它对我来说正常(来自sftp:的错误ssh: Could not resolve hostname XXX.XXX.XXX.XXX: Name or service not known
),尽管Expect(tcl)脚本的.sh
扩展名有点令人讨厌;-)
通常,当发生这种无法解释/无法预测的行为时,这是因为脚本是在Windows(notepad.exe)下编辑的,而Windows是\r\n
用来分隔行的。这对unix / linux脚本造成了严重破坏,因为只能\n
将其用作行定界符。
您可以使用的dos2unix
和unix2dos
实用工具,以这两种格式之间的转换。作为实验,我将您的脚本转换为“ dos”格式,并且确定有类似的错误:
ubuntu@ubuntu:~$ unix2dos bash.sh
unix2dos: converting file bash.sh to DOS format ...
ubuntu@ubuntu:~$ ./bash.sh
": no such file or directory
ubuntu@ubuntu:~$ dos2unix bash.sh
dos2unix: converting file bash.sh to Unix format ...
ubuntu@ubuntu:~$ ./bash.sh
spawn sftp -o IdentityFile=MyFile.ppk [email protected]
ssh: Could not resolve hostname XXX.XXX.XXX.XXX: Name or service not known
Couldn't read packet: Connection reset by peer
send: spawn id exp6 not open
while executing
"send "myPassword""
(file "./bash.sh" line 4)
ubuntu@ubuntu:~$
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句