我的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:~$
为什么在'
之前和之后添加"
。如何强制删除它?
答案 0 :(得分:1)
您不需要在原始命令中转义引号。
set -x
classpath=a:b
java -cp "$classpath" className
引号仅作为bash
语法的一部分(将$classpath
的值视为单个单词),而不是作为参数传递的实际字符串的一部分到-cp
选项。