简单的shell脚本不像命令行那样工作?

时间:2011-05-20 01:57:05

标签: shell

我正在尝试编写包含此

的脚本

screen -S demo -d -m应该启动一个名为demo的新屏幕会话并将其分离。 将screen -S demo -d -m放在命令行中可以正常工作。

如果我把它放在名为boot.sh的文件中,并运行它./boot.sh我得

Error: Unknown option m 为什么这在命令行中有效,而不是作为shell脚本?

3 个答案:

答案 0 :(得分:3)

此文件已从Windows传输并具有ctrl-M字符。

答案 1 :(得分:1)

在我的Linux机器上运行“屏幕”,一个错误的选项(屏幕版本4.00.03jw4(FAU)2006年5月2日)给出了错误,

Error: Unknown option -z"

虽然您的描述在违规选项之前不包含短划线。我会检查脚本文件中的字符是否符合您的预期。有许多字符看起来像破折号但不是。

cat -v boot.sh

可能会显示一些有趣的内容,因为它会显示非ascii字符的代码。

答案 2 :(得分:0)

这可能看起来有点像“确保您的打印机已插入”这样的帮助,但无论如何:

您是否尝试检查从脚本调用的screen是否与从命令行调用的{1}}相同?

我想你可能会在某个地方更改脚本中的PATH变量,而脚本中的screen可能是别的东西(可能是另一个版本?)。

相关问题