#!/bin/bash
PKT_SIZE='ifconfig | grep "MULTICAST" | cut -d ':' -f 2 | cut -d ' ' -f 1'
HOSTNAME=$1
count=`ping -M do -c 1 -s $PKT_SIZE $HOSTNAME | grep -c "Frag needed"`
while [ $count -eq 1 ]; do
((PKT_SIZE--))
count=$((`ping -M do -c 1 -s $PKT_SIZE $HOSTNAME | grep -c "Frag needed"`))
done
printf "Your Maximum MTU is [ $((PKT_SIZE + 28)) ] \n"
なぜ((PKT_SIZE--))減少が機能しないのですか?Bashスクリプトの検索最大MTU
$ 1 - これは、私はあなたが(())で、あなたの表現の前後にスペースを必要とするのping
'PKT_SIZE = 'ifconfig | grep "マルチキャスト" | cut -d ':' -f 2 | cut -d '' -f 1''の場合、コマンドの置換は機能しません。これは、 'PKT_SIZE = \' ifconfig | grep "マルチキャスト" | cut -d ':' -f 2 | cut -d "-f 1 \' ' – zhenguoli
はい、私はちょうど編集者から挿入したことを知っています –
時には、理解とデバッグの両方がより良いです!複雑な表現をいくつかのステップで行う。その方法では、中間体をチェックし、スクリプトで検証することができます。 – MikeW