bash强制命令双引号

时间:2014-11-03 10:50:47

标签: java bash shell classpath

我的bash脚本:

set -x
classpath=a:b
java -cp \"$classpath\" className

基本上我希望在shell上执行命令java -cp "a:b" className

输出结果为:

"a.sh" 3L, 55C written
rajatk@localhost:~$ bash a.sh
+ classpath=a:b
+ java -cp '"a:b"' className
Error: Could not find or load main class className
rajatk@localhost:~$

为什么在'之前和之后添加"。如何强制删除它?

1 个答案:

答案 0 :(得分:1)

您不需要在原始命令中转义引号。

set -x
classpath=a:b
java -cp "$classpath" className

引号仅作为bash语法的一部分(将$classpath的值视为单个单词),而不是作为参数传递的实际字符串的一部分到-cp选项。