Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell脚本[预期的行尾等,但找到未知标记]_Shell - Fatal编程技术网

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 |

我正在尝试根据构建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 | 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处于