我正在尝试编写包含此
的脚本 screen -S demo -d -m
应该启动一个名为demo的新屏幕会话并将其分离。
将screen -S demo -d -m
放在命令行中可以正常工作。
如果我把它放在名为boot.sh的文件中,并运行它./boot.sh
我得
Error: Unknown option m
为什么这在命令行中有效,而不是作为shell脚本?
答案 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
可能是别的东西(可能是另一个版本?)。