ファイルから複数の値を印刷するには? [閉鎖]

ファイルから複数の値を印刷するには? [閉鎖]
#!/bin/bash
COUNT=100
SIZE=100
INTERVAL=0.2
for myHost in `cat /files0/home/singhtr/input`
do
    echo $myHost

    ping -i $INTERVAL -q -n -s  $SIZE -c $COUNT $myHost|grep -i packet

done

入力ファイル:

# cat input
4.2.2.2 abc ATT
8.8.8.8 def BCC

以下のように入力ファイルから複数の値を印刷する方法

予想出力:

IP of the device: 4.2.2.2
Device Name: abc
customer name:ATT
2 packets transmitted, 2 received, 0% packet loss, time 1001ms

など。

bash / shellスクリプトでこれを達成したいと思います。

ベストアンサー1

#!/bin/bash
while read myHost
do
    COUNT=100
    SIZE=100
    INTERVAL=0.2
    IP=$(echo $myHost | cut -d " " -f1)
    NAME=$(echo $myHost | cut -d " " -f2)
    CUSTOMER=$(echo $myHost | cut -d " " -f3)
    PING=$(ping -i $INTERVAL -q -n -s  $SIZE -c $COUNT $IP | grep -i packet)
    echo "IP of the device: $IP"
    echo "Device name: $NAME"
    echo "Customer name: $CUSTOMER"
    echo "$PING"
    echo ""
done < /files0/home/singhtr/input

これが問題に対する考えられる解決策の1つです。出力したいものをcut選択してください。その後、field簡単なコマンドでecho出力します。一度に 1 行ずつファイルを読み取るには、次のようにします。

while read LINE
do
 ...
done < FILE

編集する

定期的にスクリプトを実行するには、スクリプトの作成を検討する必要があります。入力して現在ログインしているユーザーを表示cronjobできます。スケジュールをスケジュールするには:crontab -lcronjobscronjob

$ crontab -e

crontabを編集します。たとえば、次のように挿入します。

*/15 * * * * /path/to/script >> /path/to/log_\`date +%s\` 2>&1

cronjobこれにより、15分ごとにその場所で実行され、Unixタイムスタンプサフィックス(1549883612など)を含むファイルで発生する可能性のあるエラー/path/to/scriptと出力を記録するスクリプトが生成されます。/path/to/log_

おすすめ記事