2011/05/24
シェル変数への情報セット
例えば wget (1) コマンドへ proxy サーバの情報を伝えるためには http_proxy シェル変数に URL を http://[ID[:pass@]]FQDN[:port] 形式でセットする必要があるが、 proxy 情報が以下の形式でファイル格納されていれば 1 行で簡単にシェル変数に設定できる。
proxy.example.com # プロキシサーバの FQDN 8080 # プロキシサーバのポート番号 user # プロキシサーバの認証 ID passwd # プロキシサーバの認証パスワード
1#!/bin/sh 2 3setproxy() 4{ 5 6 local _var 7 8 _var=${1} 9 10 if [ -f ${2} ] 11 then 12 set -- `sed 's/#.*//g' ${2}` 13 test -n "${1}" && eval "${_var}=\${1:+http_proxy=http://\${3:+\$3\${4:+:\${4}}@}\${1}\${2:+:\${2}}}" 14 fi 15 16} 17 18setproxy http_proxy ファイル名 19sh -c "${http_proxy} wget …" 20 :