我將如何使用for循環編寫此Linux腳本?我試過Bash對於具有多個變量的循環
for i in {1..4}
do
na$1=$(echo $na | cut -d. -f$i);
done
但它沒有正確執行。
na=$1;
ba=$2;
tff=255;
na1=$(echo $na | cut -d. -f1);
na2=$(echo $na | cut -d. -f2);
na3=$(echo $na | cut -d. -f3);
na4=$(echo $na | cut -d. -f4);
ba1=$(echo $ba | cut -d. -f1);
ba2=$(echo $ba | cut -d. -f2);
ba3=$(echo $ba | cut -d. -f3);
ba4=$(echo $ba | cut -d. -f4);
oct1=$(expr $ba1 - $na1);
oct2=$(expr $ba2 - $na2);
oct3=$(expr $ba3 - $na3);
oct4=$(expr $ba4 - $na4);
sm1=$(expr $tff - $oct1);
sm2=$(expr $tff - $oct2);
sm3=$(expr $tff - $oct3);
sm4=$(expr $tff - $oct4);
NETADDR=$na1.$na2.$na3.$na4;
BCAST=$ba1.$ba2.$ba3.$ba4;
netmask=$sm1.$sm2.$sm3.$sm4;
echo "sshd: $NETADDR/$netmask";
exit;
,我發現了錯誤:
bash: line 15: na1=: command not found
'IFS =。閱讀na1 na2 na3 na4 <<< $ na'似乎比管道切割的多個回聲更清潔。它消除了循環的需要。如果你想避免bashisms並編寫一個不使用'<<<''的可移植腳本,請用heredoc:'IFS =寫入。閱讀na1 na2 na3 na4 << EOF \ n $ na \ nEOF \ n' –