2016-08-16 19 views
0

私はサーバー名とIPアドレスを含むリストファイルを持っています。 どのように各行を読み、それを別のコマンドを完了するために使用される2つの変数に分けるのですか? MYLISTでBashスクリプト:文字列から2つの変数を作成するには?

サンプル:

server01.mydomain.com 192.168.0.23 
server02.testdomain.com 192.168.0.52 

意図スクリプト

#!/bin/bash 
MyList="/home/user/list" 
while read line 
do 
    echo $line #I see a print out of the hole line from the file 
    "how to make var1 ?" #want this to be the hostname 
    "how to make var2 ?" #want this to be the IP address 
    echo $var1 
    echo $var2 
done < $MyList 

答えて

4

ただreadに複数の引数を渡す:

while read host ip 
do 
    echo $host 
    echo $ip 
done 

あなたがしたくない3番目のフィールドがある場合$ipに読み込むと、そのためのダミー変数を作成できます。

while read host ip ignored 
do 
    # ... 
done 
+0

モンキーレンチ、私は追加のVAR2したくない3番目のフィールドがある場合、何が起こりますか? – cwheeler33

+0

私の答えを更新しました。これはすべて、リンクされたドキュメントですべてカバーされています。 –

+0

本当にクールです...ありがとう! – cwheeler33

0
#!/bin/bash 
#replacing spaces with comma. 
all_entries=`cat servers_list.txt | tr ' ' ','` 
for a_line in $all_entries 
    do 
     host=`echo $a_line | cut -f1 -d','` 
     ipad=`echo $a_line | cut -f2 -d','` 
     #for a third fild 
     #field_name=`echo $a_line | cut -f3 -d','` 
     echo $host 
     echo $ipad 
    done 
関連する問題