Windows cygwin bash正斜杠转换为反斜杠
我们无法计算出这一点,也无法创建一个可以复制这一点的样本 我正在尝试使用外部sh文件来调用hadoop sh文件 myfile.shWindows cygwin bash正斜杠转换为反斜杠,windows,bash,cygwin,filenames,slash,Windows,Bash,Cygwin,Filenames,Slash,我们无法计算出这一点,也无法创建一个可以复制这一点的样本 我正在尝试使用外部sh文件来调用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 $HADO
# 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 "$@" // still C:/some/path/lib
exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"
然而,当“$@”在cygwin中展开时,结果路径变成C:\some\path\lib,然后hadoop.sh抱怨它找不到jar。。。不是有效的JAR:C:\some\path\lib
但是,如果我在myfile.sh中硬编码路径;它起作用了
$HADOOPCMD jar C:/some/path/lib/myjar.jar
问题:
引用变量的作用是:“$WORKINGDIR”/myjar.jarhmm。。我想我是通过引用$WORKINGDIR来实现的,所以命令是$HADOOPCMD jar“$WORKINGDIR”/myjar.jar一般的经验法则是“始终引用变量扩展”。