bash
  • ping
  • hostname
  • 2017-06-16 72 views 0 likes 
    0

    基本上我正在從sql-datebase讀取一些mac地址。然後我將它們解析爲一個可ping通的主機名(添加後綴和前綴)。 後來我通過陣列ilterate並ping的主機名,並在數組的最後一個值,我收到錯誤消息:bash:pinging主機名(errormessages:value對於bash來說太好了)

    value too great for base (error token is "64167f066aa1") 
    

    我的代碼看起來現在是這樣的:

    MAC = 'reading from sql-db' 
    for i in "${MAC[@]}" 
    do 
    NMAC+=($(echo -n "prefix_" && echo -n $i && echo ".suffix")); 
    done 
    ping=($(ping -c 1 ${NMAC[$i]} &> /dev/null && echo success || echo fail)) 
    

    而在以下代碼我使用有問題的變量ping:

    ping -q -c1 ${NMAC[$i]} > /dev/null 
    if [ $? -eq 0 ] 
    then 
    echo "online" 
    else 
    echo "offline" 
    fi 
    

    你們有什麼想法嗎?爲什麼當所有先前的mac地址都成功時,它總是mac地址陣列的最後一行?

    回答

    0

    變化

    ping=($(ping -c 1 ${NMAC[$i]} &> /dev/null && echo success || echo fail)) 
    

    PING=($(ping -c 1 ${NMAC[$i]} &> /dev/null && echo success || echo fail)) 
    

    平是一個命令,所以你不應該使用它作爲變量。

    +0

    這似乎不工作,但inded。它的混淆,我有一個變量名與一個命令等同。 – JMAD2016

    相關問題