2015-11-24 95 views
-1

以下URL中%\的用途是什么?澄清URL中的符号%

http://controller:8774/v2/%\(tenant_id\)s 

我对Linux很新,但是我明白正斜杠\通常用作转义字符。我也知道%符号被用作URL编码中的转义字符。不知道%\的组合是如何工作的?

它用于创建OpenStack nova API。确切的命令是

openstack endpoint create --region RegionOne \ compute public http://controller:8774/v2/%\(tenant_id\)s

任何指导,将不胜感激。

+0

这是什么情况?这是键入命令行还是shell脚本或其他地方? (根据直觉,'%\'不算什么;'\('和'\)'是括号的转义,否则将被认为对shell具有特殊含义)。 – Amadan

+0

你在哪里找到这样的网址? %通常会跟随一个数字 – TheBook

回答

0

据我猜测,网址是"http://controller:8774/v2/%(tenant_id)s"。引用,它像它应该是:

$ echo "http://controller:8774/v2/%(tenant_id)s" 
http://controller:8774/v2/%(tenant_id)s 

$ echo 'http://controller:8774/v2/%(tenant_id)s' 
http://controller:8774/v2/%(tenant_id)s 

逃逸作品还有:

$ echo http://controller:8774/v2/%\(tenant_id\)s 
http://controller:8774/v2/%(tenant_id)s 

但是,如果你不这样做东西从括号去掉特殊的意义,bash会抱怨:

$ echo http://controller:8774/v2/%(tenant_id)s 
-bash: syntax error near unexpected token `(' 

这是因为bash使用括号来组指令为子流程:

$ (echo bear && echo aardvark) | sort 
aardvark 
bear 

因此,一个左括号不能出现在无法启动命令的地方。

同时,%(...)的含义是特定于openstack的;我相信这是一个变量,将在之前被替换为,该URL用作实际的URL;所以它更像是一个URL模板而不是实际的URL。