2013-04-10 158 views
1

我试图将一些参数传递给ecb。但我认为这是一个逃避报价的问题。特别是下面的$ edir变量给出了很多问题。Bash:将变量作为参数传递给引号

#!/bin/bash 

edir='"(open-project-ecb \"'`pwd`'\")"' 

#edir=`pwd` 

echo $edir 

command=(-n --eval $edir) 

emacsclient "${command[@]}" 
+0

你如何确切地想要'pwd'包围? – fedorqui 2013-04-10 13:27:35

+0

@fedorqui所以在理想的世界“(open-project-ecb \”pwd \“)” – bobarillo 2013-04-10 13:42:42

+0

这就是我得到,如果我执行你的命令。 'echo $ edir'给我''(open-project-ecb \“/ my/dir \”)“' – fedorqui 2013-04-10 13:45:13

回答

5

您只是引用过快。只要您引用$edir的扩展,您就不需要在其值中嵌入额外的引号;它将被视为一个单词。

edir="(open-project-ecb \"$(pwd)\")" 
command=(-n --eval "$edir") 
emacsclient "${command[@]}" 
+0

真棒作品!我会投你一票,但我显然没有足够的声望。 – bobarillo 2013-04-10 13:47:48

+0

@bobarillo为你做了 – v01pe 2013-06-26 14:39:51

相关问题