0

以下のコマンドをbashスクリプトで実行すると失敗しますが、エコーされた各ステートメントをコピーしてターミナルに貼り付けると、機能します...

networksetup -listallntworkservices | while read line; do networksetup -setautoproxy '"'$line'"' http://etc...

理想的には、名前に「Ethernet」または「Wi-fi」が含まれているネットワークサービスに対してのみ上記のコマンドを実行したいと思います。

4

1 に答える 1

0

コマンドの入力がわからないので、またはで変更'"'$line'"'してみてください。"$line""'$line'"

変数にスペースが含まれている場合のシェル拡張を回避するために、コマンドに引数を渡すときは常に変数を二重引用符で囲みます。

変数内で二重引用符が必要な場合、これは機能するはずです。"\"$line\""

イーサネットまたはWi-Fiに一致する回線をフィルタリングするには

networksetup -listallntworkservices |
  while read line; do
    if [[ $line =~ (Ethernet|Wi-fi) ]]; then
      networksetup -setautoproxy "$line" http://etc.
    fi
  done
于 2012-10-24T18:15:58.260 に答える