APIを使用しようとしています。 2つの変数を置換または活用するには、一種の「forループ」を実行する必要があります。
偽物で...
# Declare New Servers
newserver=(
box001
box002
box003
box004
box005
)
# Declare hostnames
newhostname=(
box001.domain.com
box002.domain.com
box003.domain.com
box004.domain.com
box005.domain.com
)
NEWSERVERとNEWHOSTNAMEを交換する必要があります。
http://server/api/duplicateobject.htm?id=2928&name=NEWSERVER&host=NEWHOSTNAME&targetid=3120
だからそれは
http://server/api/duplicateobject.htm?id=2928&name=box001&host=box001.zcloud.com&targetid=3120
リストされているすべてのホストを繰り返すために必要です。
ベストアンサー1
標準は明確に定義されていませんが、ここには次のようなものがあります。私します:
hosts=(
box001:box001.domain.com
box002:box002.domain.com
box003:box003.domain.com
box004:box004.domain.com
box005:box005.domain.com
)
uri="http://server/api/duplicateobject.htm?id=2928&name=NEWSERVER&host=NEWHOSTNAME&targetid=3120"
for host in "${hosts[@]}"; do
IFS=":" names=( $host )
hosturi="${uri/NEWSERVER/${names[0]}}"
hosturi="${hosturi/NEWHOSTNAME/${names[1]}}"
echo "$hosturi"
done
出力:
http://server/api/duplicateobject.htm?id=2928&name=box001&host=box001.domain.com&targetid=3120
http://server/api/duplicateobject.htm?id=2928&name=box002&host=box002.domain.com&targetid=3120
http://server/api/duplicateobject.htm?id=2928&name=box003&host=box003.domain.com&targetid=3120
http://server/api/duplicateobject.htm?id=2928&name=box004&host=box004.domain.com&targetid=3120
http://server/api/duplicateobject.htm?id=2928&name=box005&host=box005.domain.com&targetid=3120
利点:
- どのサーバー名がどのFQDNに対応するかを明確に確認してください。
- 純粋なbashで、外部エントリを使用しません。
。
サーバー名が常にFQDNの最初の部分である場合、配列はより簡単になり、bashにFQDNからサーバー名を計算させることができます。