これがコロンで区切られたbashコマンドライン引数を分割する最良の方法ですか?
#!/bin/bash
hostlist=`echo $1| awk '{split($0,Ip,":")} END{for (var in Ip) print Ip[var];}'`
for host in $hostlist
do
....
done
ベストアンサー1
別の方法はIFS、文字列をフィールドに分割するためのシェルの組み込み方法です。
OLDIFS=$IFS
IFS=':'
set -f
for host in $hostlist; do
set +f
echo "$host"
done
set +f
IFS=$OLDIFS
set -f
ファイル名の生成(ワイルドカード)をオフにする:この機能がないと、ワイルドカードは*?\[
すべての単語で拡張されます。