非常简单,我在我的/usr/local/bin/中有一个指向dart2js的链接,它在运行时抛出重复的错误。
我跑了
sudo ln -s /Users/macbook/Development/dart/dart-sdk/bin/dart2js /usr/local/bin/dart2js当从终端运行dart2js时,我会看到
...
/usr/local/bin/dart2js: line 9: 1=/Users/macbook/Development/dart/dart-sdk/bin/dart2js: No such file or directory
/usr/local/bin/dart2js: line 9: 1=/Users/macbook/Development/dart/dart-sdk/bin/dart2js: No such file or directory
/usr/local/bin/dart2js: line 9: 1=/Users/macbook/Development/dart/dart-sdk/bin/dart2js: No such file or directory
/usr/local/bin/dart2js: line 9: 1=/Users/macbook/Development/dart/dart-sdk/bin/dart2js: No such file or directory
/usr/local/bin/dart2js: line 9: 1=/Users/macbook/Development/dart/dart-sdk/bin/dart2js: No such file or directory
... etc我想我只是简单地错误地使用了链接,但我没有足够的知识来知道为什么。
发布于 2014-02-11 00:21:11
我在一段时间前遇到了这个问题,并发布了这个问题Can't run dart command line script using a symlink
我还添加了一个变通方法,可能对你的情况也有帮助--你可能需要稍微调整一下,但它应该能让你上手。
我现在使用的一个解决方法是在与testscript.dart相同的目录中创建一个名为'testscript‘的bash脚本,并链接到此脚本
我查找bash脚本的当前目录并启动dart脚本(Getting the source directory of a Bash script from within)。
#!/bin/bash
ME="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")"
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
${DIR}/${ME}.dart ${BASH_SOURCE[0]}不是用io.Platform.script获取命令(符号链接)的名称,而是必须将其作为参数传递到dart脚本中才能使用(我使用用于启动脚本的符号链接的名称,就像dart脚本中的参数一样),这样我就必须区分脚本是否直接启动,否则使用io.Platform.script和args。
我认为这一切都应该更容易。
https://stackoverflow.com/questions/21682200
复制相似问题