2016-08-16 71 views
0

我有一個包含服務器名稱和IP地址的列表文件。 我將如何閱讀每一行,並將它分成兩個變量,用於完成其他命令?Bash腳本:如何從一個字符串中創建兩個變量?

在樣品MYLIST:

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 

如果你不想給第三場讀入$ip,可以爲此創建一個虛擬變量:

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

猴子扳手,如果有,我不想加入到VAR2第三場會發生什麼? – 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 
相關問題