shell 路径包含空格怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 路径包含空格怎么办相关的知识,希望对你有一定的参考价值。

参考技术A

加引号:


mkdir "123 abc"
rmdir "123 abc"

本回答被提问者采纳

Java程序shell启动脚本文件中路径带空格怎么办?

bat里面给classpath和-DXXX_HOME两个参数值都加了双引号就可以了,但是linux下的shell还是不行,不知道该怎么办。

export START_CMD="$_JAVACMD $JAVA_OPTS $SUNJMX -classpath "$XXX_CLASSPATH" -DXXX_HOME="$XXX_HOME" test.AppMain"
就是上面这一行,该怎么改?

export START_CMD="$_JAVACMD $JAVA_OPTS $SUNJMX -classpath $XXX_CLASSPATH -DXXX_HOME=$XXX_HOME test.AppMain"追问

还是不可以,因为XXX_CLASSPATH中带空格,在启动test.AppMain时,此程序main方法的路径变成两个空格之间。
比如:
XXX_CLASSPATH="AAAA BBBB/lib/test.jar:AAAA BBBB/lib/log4j.jar"
启动的时候就报无法找到 BBBB/lib/test.jar:AAAA 下面的test.AppMain类

追答

你这串写的太长了,我是在看不懂什么意思。
貌似你 给START_CMD赋值,赋值的同时 又给 $XXX_CLASSPATH赋值 然后
$XXX_CLASSPATH 赋的值是$XXX_HOME test.AppMain 赋过来的。
我劝你,还是把其中涉及的变量单独取出来,别写一块。
整理好以后再调用。

参考技术A $XXX_HOME外面的双引号要转义,最好写成\"$XXX_HOME\"追问

还是不可以,因为XXX_CLASSPATH中带空格,在启动test.AppMain时,此程序main方法的路径变成两个空格之间。
比如:
XXX_CLASSPATH="AAAA BBBB/lib/test.jar:AAAA BBBB/lib/log4j.jar"
启动的时候就报无法找到 BBBB/lib/test.jar:AAAA 下面的test.AppMain类

追答

这看来就比较麻烦了。先执行XXX_HOME=`echo "$XXX_HOME" | sed -e "s/ /\\ /g"`试试看

以上是关于shell 路径包含空格怎么办的主要内容,如果未能解决你的问题,请参考以下文章

程序中 shell打开文件路径中有空格键就出错,怎么办?

linux shell 中 如何处理空格的路径?

怎么为QtCreator 添加包含路径

oracle主目录路径不能包含空格

【shell】文件名中有空格怎么办

VB调用SHELL,参数路径有空格如何处理?