【问题标题】:Why am I getting a syntax error ('{' unmatched) in this SL4A script?为什么在此 SL4A 脚本中出现语法错误(“{”不匹配)?
【发布时间】:2015-01-05 07:48:49
【问题描述】:

我已经编写了一个 shell 脚本来重新连接我的路由器。

当我使用 Cygwin 在我的 PC 上运行它时,它运行良好,但现在我想在我的智能手机上的 SL4A shell 中运行它,我收到一个错误:

reconnect.sh[4] 语法错误:'{' 不匹配

这是我正在使用的脚本:

#! /system/bin/sh
echo "script start"
sleep 3
strindex() { 
  x="${1%%$2*}"
  [[ $x = $1 ]] && echo -1 || echo ${#x}
}

为什么会出现这个错误?

【问题讨论】:

  • tokenStringEnd=${tokenString##*= } 行似乎在 SO 语法中注释掉了第二个右大括号。有没有可能 Cygwin 看到了它,但 SL4A 没有? (对不起,我真的不知道这两个 shell。)
  • 表示reconnect.sh[4]错误在第4行?
  • 糟糕,我错过了。那时候估计不行。 :(
  • 这显然是一个换行问题。试试这个:tr -d '\r' reconnect.sh > reconnect_unix.sh 然后执行reconnect_unix.sh

标签: shell sl4a


【解决方案1】:

我发现了错误:

#!/bin/sh
strindex() { x="${1%%$2*}" [[ $x = $1 ]] && echo -1 || echo ${#x} }

一行。

Cygwin 似乎可以解决换行问题,但 SL4A 却没有!

【讨论】:

  • 我假设你的意思是上面的单行不能工作,因为它在} 之前缺少;。 “解决换行符”是什么意思?
猜你喜欢
  • 1970-01-01
  • 2013-12-09
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多