我想尝试一下 Goworks(golang 的 IDE)。
当我启动应用程序时
$ cd goworks/bin
$ ./goworks
它给出了以下错误。
: not found4: ./../etc/goworks.conf:
: not found9: ./../etc/goworks.conf:
: not found12: ./../etc/goworks.conf:
...
配置文件存在,当我运行命令时,cat ./../etc/goworks.conf
它会显示配置文件的内容。这对我来说有点奇怪。
当我在文本编辑器中打开 shell 脚本时subl goworks
#!/bin/sh
#
# resolve symlinks
#
PRG=$0
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '^.*-> \(.*\)$' 2>/dev/null`
if expr "$link" : '^/' 2> /dev/null >/dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
progdir=`dirname "$PRG"`
APPNAME=`basename "$PRG"`
if [ -f "$progdir/../etc/$APPNAME".conf ] ; then
. "$progdir/../etc/$APPNAME".conf # Here is the problem
fi
...
问题始于条件内部if
。
由于我对 POSIX 命令行应用程序的了解有限,我甚至不知道从哪里开始。
答案1
谢谢@steeldriver。问题解决了。我刚刚提取了存档zip
并直接运行。就像您提到的那样,goworks.conf 文件在每行末尾都有一个额外的垃圾字符。
我怀疑它带有一个 '\r' 字符,但是 Sublime Text Editor 即使在 Regex 模式下也找不到这个字符。
以下是输出
$ cat -net ./../etc/goworks.conf
1 # ${HOME} will be replaced by user home directory according to platform^M$
2 default_userdir="${HOME}/.${APPNAME}/dev"^M$
3 default_mac_userdir="${HOME}/Library/Application Support/${APPNAME}/dev"^M$
4 ^M$
5 # options used by the launcher by default, can be overridden by explicit^M$
6 # command line switches^M$
7 default_options="--branding goworks -J-server -J-XX:+TieredCompilation -J-Xms384m -J-Dnetbeans.logger.console=true"^M$
8 # for development purposes you may wish to append: -J-Dnetbeans.logger.console=true -J-ea^M$
9 ^M$
10 # default location of JDK/JRE, can be overridden by using --jdkhome <dir> switch^M$
11 #jdkhome="/path/to/jdk"^M$
12 ^M$
13 # clusters' paths separated by path.separator (semicolon on Windows, colon on Unices)^M$
14 #extra_clusters=^M$
该问题现已解决。
程序在加载时引发另一个问题,然而,这将是一个不同的问题。
谢谢 :)