Shell脚本[预期的行尾等,但找到未知标记]
我正在尝试根据构建Synergy AutoStart脚本,shell给出了错误信息 语法错误 预期的行尾等,但找到 未知标记 这是我正在编写的脚本Shell脚本[预期的行尾等,但找到未知标记],shell,Shell,我正在尝试根据构建Synergy AutoStart脚本,shell给出了错误信息 语法错误 预期的行尾等,但找到 未知标记 这是我正在编写的脚本 #!/bin/sh . /etc/rc.common run=(/usr/local/bin/synergyc -n $(hostname -s) -1 -f 192.168.0.108) KeepAlive () { proc=${1##*/} while [ -x "$1" ] do if ! ps axco command |
#!/bin/sh
. /etc/rc.common
run=(/usr/local/bin/synergyc -n $(hostname -s) -1 -f 192.168.0.108)
KeepAlive ()
{
proc=${1##*/}
while [ -x "$1" ]
do
if ! ps axco command | grep -q "^${proc}\$"
then
"$@"
fi
sleep 3
done
}
StartService ()
{
ConsoleMessage "Starting Synergy"
KeepAlive "${run[@]}" &
}
StopService ()
{
return 0
}
RestartService ()
{
return 0
}
RunService "$1"
当抛出错误时,在这一行上突出显示“period”/etc/rc.通用
这里有我遗漏的东西吗?如果您在windows机器上编辑,请在该文件上尝试dos2unix。注意,具体问题是。Unixen使用字符(LF),Mac传统上使用字符(CR),MS OSs使用字符(CR LF)。如果行尾错误,shell会将整个shell脚本视为一行;CRs不被视为空白,而是被放大。因此,shell会发出这样的消息:“预期行结束,[…]但发现未知标记”。通过dos2unix运行脚本可以修复行尾
阅读苹果公司的“”。除此之外,它还告诉您如何使用Text Edit.app(以及命令行中的pico和nano)编写shell脚本。或者,学习使用或。您发布的代码不是AppleScript,而是shell脚本。链接中的说明谈到创建“脚本”,它们只是指一个文本文件。@rock:你用什么程序编写脚本?@Isaac,我不知道。。。我应该使用什么扩展名[.txt]@奥蒂斯,我用了AppleScript编辑器。谢谢大家。。。我刚刚删除了所有的扩展,并运行Dos2Unix使其工作。这是@Isaac上面的答案和您的答案的结合。谢谢正在工作。您链接到的MacVim版本相当旧。当前(尽管不相关)MacVim处于