当我通过 bash 脚本运行以下命令时,它会失败,但是如果我复制每个回显的语句并将它们粘贴到终端中,它就可以工作......
networksetup -listallntworkservices | while read line; do networksetup -setautoproxy '"'$line'"' http://etc...
理想情况下,我只想为名称中包含“以太网”或“Wi-fi”的网络服务运行上述命令。
因为我不知道您的命令的输入是什么:尝试'"'$line'"'
通过"$line"
or更改"'$line'"
。
为避免在 case 变量中包含空格的 shell 扩展,在将参数传递给命令时,始终使用双引号变量。
如果变量内部需要双引号,这应该有效:"\"$line\""
过滤与以太网或 Wi-fi 匹配的线路
networksetup -listallntworkservices |
while read line; do
if [[ $line =~ (Ethernet|Wi-fi) ]]; then
networksetup -setautoproxy "$line" http://etc.
fi
done