【发布时间】:2014-02-14 09:23:21
【问题描述】:
我将从 Windows 机器创建的 .sh 文件发送到 linux,以便我可以在那里运行它。问题是我不断收到一个称为错误解释器的错误。但是当我在 linux 机器上编写 shell 脚本时,它运行没有问题,即使它与从 windows 机器发送的代码相同。经过我的调查,我发现windows机器.sh脚本是一个文本/纯文件(使用文件-bi),而来自linux机器的另一个是一个text/x.shellscript。有没有办法将 text/plain 转换为 text/x.shellscript?谢谢
这是脚本:
#!/bin/bash
date
sudo apt-get update
我尝试了一个解决方案,方法是在一个仅包含
的 linux 框中创建另一个 .sh 文件#!/bin/bash
然后windows机器只发送了一个包含测试命令的文件,例如:
date
hostname
然后我用
将文件从 windows 框中附加到 linux 中cat windows.sh >> linux.sh
如果我运行 linux.sh,它就不起作用。它说的错误如下:
./linuxh.sh: line 2 $'date\r':command not found
./linuxh.sh: line 2 $'hostname\r':command not found
但是,如果我打开 Linux.sh 然后再次保存它而不做任何事情。有效
【问题讨论】:
-
我怀疑第一行的 shell 路径错误。给我们看剧本怎么样?
-
我说的是“请给我们看剧本”,而不是“剧本是在哪里制作的?”...
-
@MarkSetchell 对这种误解深表歉意。我用 sript 编辑了我的帖子。
-
请在脚本每行的开头放置 4 个空格,以便格式正确。
-
第一行应该是“#!/bin/bash”或者“#!/usr/bin/bash”
标签: linux windows shell encoding scripting