Невозможно определить этот наш или создать образец, который может воспроизвести это.cygwin bash вперед косая черта, преобразованная в обратную косую черту
Am пытается с помощью внешнего файла ш для вызова файлу Hadoop Sh
myfile.sh
# workingdir = /data1/some/path/lib
WORKINGDIR=`cygpath -p -w -m "$WORKINGDIR"`
# so the above in windows land is C:/some/path/lib
# HADOOPCMD essentially is a call to hadoop.sh
$HADOOPCMD jar $WORKINGDIR/myjar.jar
hadoop.sh
echo "[email protected]" // still C:/some/path/lib
exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "[email protected]"
Однако когда "$ @" расширяется в cygwin результирующий путь становится C: \ some \ path \ lib, а затем жалобы hadoop.sh, что он не может найти jar ... Недействительный JAR: C: \ some \ path \ lib
Однако, если бы мне пришлось жестко указать путь в myfile.sh; он работает
$HADOOPCMD jar C:/some/path/lib/myjar.jar
Вопрос
- почему ехес командования "$ @" изменить/к \ в переменной WorkingDir?
- Почему работает жесткий путь?
- Как заставить это работать с переменной заменой?
хмм .. я думаю, что я получил его на работу, указав $ WorkingDir поэтому команда $ HADOOPCMD банку «$ WorkingDir» /myjar.jar – sunny
Общее правило заключается в «всегда указывайте свои переменные расширения». –