^ $ এবং ^ # এর অর্থ কী?


17

আমি বুঝতে পারছি না BADIPS=$(egrep -v "^#|^$" $tDB)। তুমি কি এটা ব্যাখ্যা করতে পারবে? সম্পূর্ণ কোড:

#!/bin/bash
# Purpose: Block all traffic from AFGHANISTAN (af) and CHINA (CN). Use ISO code. #
# See url for more info - http://www.cyberciti.biz/faq/?p=3402
# Author: nixCraft <www.cyberciti.biz> under GPL v.2.0+
# -------------------------------------------------------------------------------
ISO="af cn" 

### Set PATH ###
IPT=/sbin/iptables
WGET=/usr/bin/wget
EGREP=/bin/egrep

### No editing below ###
SPAMLIST="countrydrop"
ZONEROOT="/root/iptables"
DLROOT="http://www.ipdeny.com/ipblocks/data/countries"

cleanOldRules(){
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
}

# create a dir
[ ! -d $ZONEROOT ] && /bin/mkdir -p $ZONEROOT

# clean old rules
cleanOldRules

# create a new iptables list
$IPT -N $SPAMLIST

for c  in $ISO
do 
    # local zone file
    tDB=$ZONEROOT/$c.zone

    # get fresh zone file
    $WGET -O $tDB $DLROOT/$c.zone

    # country specific log message
    SPAMDROPMSG="$c Country Drop"

    # get 
    BADIPS=$(egrep -v "^#|^$" $tDB)
    for ipblock in $BADIPS
    do
       $IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix "$SPAMDROPMSG"
       $IPT -A $SPAMLIST -s $ipblock -j DROP
    done
done

# Drop everything 
$IPT -I INPUT -j $SPAMLIST
$IPT -I OUTPUT -j $SPAMLIST
$IPT -I FORWARD -j $SPAMLIST

# call your other iptable script
# /path/to/other/iptables.sh

exit 0

1
বিকল্প গ্রেপ grep '^[^#]'এই রেজেক্সের শুরুতে কমপক্ষে একটি চর আশা করা উচিত তবে এটি হওয়া উচিত নয়#
অবিনাশ রাজ

উত্তর:


31

^রেগুলার সূচনা চিহ্নিত করতে ব্যবহৃত নিয়মিত অভিব্যক্তি বিশেষ অক্ষর এবং লাইনের $শেষ চিহ্ন চিহ্নিত করে। তারা এই পয়েন্টগুলিতে প্রকাশ নোঙ্গর করতে ব্যবহৃত হয় । সুতরাং^# কোনো দিয়ে শুরু লাইন #, এবং ^$একটি খালি লাইন (শুরু এবং শেষের মধ্যে কিছুই নেই যেহেতু) হয়।

-vমধ্যে grepnegates ম্যাচ, তাই এই কমান্ড লাইন যে মন্তব্য করেছে নেই (দিয়ে শুরু না জন্য খুঁজছেন হয় #), অথবা খালি।


15

egrep একটি প্যাটার্নের সাথে মেলে এমন ফাইলগুলির সন্ধান করে।

-v (অথবা--invert-matchEgrep- ) বিকল্পটি মিল না-করা লাইনগুলি নির্বাচন করতে, মিলের বোধকে উল্টে দেয়।

"^#|^$"একটি ফাঁকা রেখা বা একটি লাইনের সাথে মূল্যায়ন করে যা # দিয়ে শুরু হয় যা একটি মন্তব্য লাইন, যার দুটিই বাশ দ্বারা কার্যকর করা হয় না। ম্যাচটি উল্টো করে এমন রেখাগুলিতে মূল্যায়ন করে যা খালি লাইন বা মন্তব্য লাইনের নয়।

$tDB একটি পরিবর্তনশীল যা স্থানীয় অঞ্চল ফাইলের মান সঞ্চয় করে।

এগুলিকে একসাথে রেখে খারাপ আইপিগুলি (আইপিগুলি ব্লক করা হবে) বিএডিআইপিএসে সংরক্ষণ করা হয় যা স্থানীয় অঞ্চলের ফাইলগুলির তালিকা থেকে প্রাপ্ত খারাপ আইপিগুলির মান সংরক্ষণ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.