首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >shell脚本中引用的变量

shell脚本中引用的变量
EN

Stack Overflow用户
提问于 2017-05-17 23:59:44
回答 1查看 70关注 0票数 1

我试图确定Mac上的自动代理URL是否已配置。首先,我想知道端口号。

代码语言:javascript
复制
port=$(route get example.com | grep interface | sed 's/.*\(...\)/\1/')

然后使用端口号获得活动网络服务。

代码语言:javascript
复制
service=$(networksetup -listnetworkserviceorder | grep $port |  sed 's/,.*$//; s/^.*: //')

最后,使用主动网络服务获取自动代理信息。

代码语言:javascript
复制
autoproxy=$(networksetup -getautoproxyurl \"$service\")

我遇到了任何包含空格的网络服务的问题。例如,Wi工作正常,但Apple以太网适配器不工作。我认为解决方案是转义引号(\"$service\") --奇怪的是,如果我回显$service (其中$service是Apple以太网适配器),它返回一个引用正确的“Adapter”结果,如果我然后复制并粘贴这个确切的结果来替换变量$service,我将得到我所期望的结果(URL:(null) Enabled: No),但是,运行该命令时,它最初编写时会返回一个参数错误(错误:参数无效)。

这是运行脚本的结果如下:

代码语言:javascript
复制
 autoproxy=$(networksetup -getautoproxyurl "$service")
 echo $autoproxy
 Error: The parameters were not valid.

但是,如果我复制并粘贴了$service的输出,那么它将返回我期望的结果。

代码语言:javascript
复制
service=$(networksetup -listnetworkserviceorder | grep $port |  sed 's/,.*$//; s/^.*: //')
echo \"$service\"
"Apple USB Ethernet Adapter"
autoproxy=$(networksetup -getautoproxyurl "Apple USB Ethernet Adapter")
echo $autoproxy
URL: (null) Enabled: No
EN

回答 1

Stack Overflow用户

发布于 2017-05-18 00:04:57

在自动代理表达式中,服务变量使用"“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44036519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档