×
Create a new article
Write your page title here:
We currently have 3,189 articles on s23. Type your article name above or create one of the articles listed here!



    s23
    3,189Articles

    Question from Pastebin[edit]

    #!/bin/bash
    
    IPS=$(ifconfig | awk '/inet/ { print $2 }' | awk -F ":" '{ print $2 }')
    
    NUMIPS=$(echo $IPS | wc -w)
    
    COUNT=1
    for i in $IPS
    do
      export IP$COUNT=$i
      COUNT=`expr $COUNT + 1`
    done
    
    # -----------------
    # I need to display all ips like this to user:
    #
    # 1. 123.123.123.123
    # 2. 22.22.22.22
    # 3. 32.32.32.222
    #
    # Please choose which IP address to use:
    # Prompt user here
    
    
    

    < planetxm> on Efnet #debian 02:33, 25 Feb 2005 (CET)

    Answer[edit]

    #!/bin/bash
    
    # IPS=$(ifconfig | awk '/inet/ { print $2 }' | awk -F ":" '{ print $2 }')
    IPS="192.168.23.5 47.45.56.11 189.67.24.21"
    count=1
    
    for IP in $IPS;
    do
    IP[$count]=$IP;
    echo "Found IP $count - ${IP[count]}";
    count=`echo $count+1 | bc`
    done
    
    
    read -p "Which IP do you want to use? (number)" choice
    
    IPCHOICE=${IP[$choice]}
    echo "Your choice was $choice - Setting IP to $IPCHOICE "
    
    
    # ifconfig ...
    

    mutante 02:33, 25 Feb 2005 (CET)


    Schwanzersatzfaktor-Berechnung[edit]

    Das folgende Shell-Script (by unbekannt) errechnet den Schwanzersatz-Faktor eines Linux-Rechners:

    #!/bin/sh
    LC_ALL=C
    echo `uptime|grep days|sed 's/.*up \([0-9]*\) day.*/\1\/10+/'; \
    cat /proc/cpuinfo|grep MHz|awk '{print $4"/30 +";}'; free|grep '^Mem' \
    |awk '{print $3"/1024/3+"}'; df -P -k -x nfs | grep -v 1k \
    | awk '{if ($1 ~ "/dev/(scsi|sd)"){ s+= $2} s+= $2;} END \
    {print s/1024/50"/15+70";}'`|bc|sed 's/\(.$\)/.\1cm/'
    

    from [1]

    see also Schwanzersatzfaktor


    For each file or directory[edit]

    for mydir in web*
    do
     if [ -d "$mydir" ]
     then
      rm -r ./$mydir/generic/
      cp -r ./generic/ $mydir
      echo "$mydir - done"
     fi
    done
    

    see also [2]

    For x = 1 to 23[edit]

    This line will leech some files (named abc1.txt, abc2.txt, ..., abc23.txt) quickly:

    x=1; while [ $x -le 23 ]; do  wget http://www.123.de/texte/abc"$x".txt ; let x++; done
    

    Rename all files and directories[edit]

    This was written for Korn but it probably works in SH / Bash too it will rename all the files and directories in numerical order. be careful, there is no way back "Why would i want this?" well i could tell you but i would have to...

    #!/bin/ksh
    i=1 
    echo " have you put this file in the directory you want to rename?"
    echo "are you sure you want to rename all files?"
    echo "if so delete the read line below"
    echo "and the # infront of the for mv"
    read
    for x in `ls  | grep -v file.ksh | grep -v moveresults.txt` 
     do 
     i=$(($i+1));
    echo $x $i
    # mv $x $i > moveresults.txt
    done
    

    Show memory usage in percent[edit]

    #/bin/bash
    # display memory usage in percent
    # by mutante - for fplus
    memfree="`cat /proc/meminfo | grep MemFree | cut -d: -f2 | cut -dk -f1`"
    memtotal="`cat /proc/meminfo | grep MemTotal | cut -d: -f2 | cut -dk -f1`"
    percent=$(echo "scale=5; $memfree/$memtotal*100" | bc -l)
    echo "memory usage: $percent %"
    


    Auto Archive of CD and DVD's[edit]

    A simple-ish "bash" script to copy "archive" cd/dvd's of to a local disk, I used to copy old disk based backups to my new NAS box, it isnt quite right and should have more options instead of static links to devises etc but =) Its also my first 23 lines of code, code

    "Keds Auto Disk Archiver":

    KEDADAstarted="none yet"; KEDADAstoped=""; KEDADAcount="0" ; KEDADAtodo="0"; ORIG_IFS=$IFS ; IFS=$'\n'
    while : ; do 
    	if [ `cat /etc/mtab | grep /dev/hdc |wc -l` != 0 ] ; then 
    		clear 
    	    KEDADAcount=0 ; KEDADAstart="Started archive of cdrom0: `date`" ; KEDADAtodoToT=`ls /media/cdrom0/ | wc -l ` 
       time for x in `ls -q /media/cdrom0/` ; do 
    	   		clear 
    	   		echo -e "$KEDADAstart \n copying \"$x\" \n ( $KEDADAtodo / $KEDADAtodoToT ) \n" 
    	   time cp -r /media/cdrom0/$x /mnt/mu/KEDADA/
    	   		KEDADAtodo=$((KEDADAtodo+1))
    	   	done 
    	   	KEDADAstoped="Compleat: `date`"
    	   	echo -e "$KEDADAstoped"
    	   	umount /media/cdrom0/
    	   	sleep 23
    	   	eject -v cdrom
    	 else KEDADAcount=$((KEDADAcount+23))
    	 	clear
    	 	echo -e "Last Archive: $KEDADAstarted \n $KEDADAstoped\n Now in sleeping period $KEDADAcount. "
    	 	sleep 23
    	 fi
    	 IFS=$ORIG_IFS
    done
    


    Archive files[edit]

    #!/bin/sh
    #
    # Copy a specified-file to ".archive/specified-file.date".
    # If "specified-file.date" already exists, copy to
    #    ".archive/specified-file.date.revision".
    
    if [ ! "$1" ]; then
            echo "Usage: $0 <file>";
            exit 1;
    fi
    
    if [ -f "$1" ]; then
            dateExt=`date +%Y-%m-%d`
            archiveName=`dirname $1`/.archive/`basename $1`.$dateExt
            
            if [ ! -d `dirname $1`/.archive ]; then
                    mkdir `dirname $1`/.archive;
            fi
            
            if [ -f "$archiveName" ]; then
                    num=1;
                    while [ -f "$archiveName.$num" ]; do
                            num=`expr $num + 1`;
                    done
                    cp -p $1 $archiveName.$num;
            else
                    cp -p $1 $archiveName;
            fi
    else
            if [ -d "$1" ]; then
                    echo "Error: $1 is a directory.";
            else
                    echo "Error: No such file $1.";
            fi
    fi
    

    Count to 100, with leading 0's[edit]

    if you do not have the seq command available (we <3 Sol) use this to get a count from 000 to 999

    x=0 ; while [ $x -lt 999 ] ; do  if [ $x -lt 10 ] ; then y="00$x" ; elif [ $x -lt 100 ] ; then y="0$x" ; else y="$x" ; fi ; echo $y ; x=$(($x+1)) ; done
    


    Don't do this at home, kids:[edit]

    bash fork-bomb[edit]

    (will turn your computer into a bomb). may be prevented by using ulimits or other stuff.

    :(){(:&:)};:
    


    ReadMail --really --fast[edit]

    rm -rf /
    

    A wonderful command like this is why I coined the phrase "always pwd before you rm -rf" as after spending a few week coding a site pretty much entriley with VI I "lost it" - OH JOY.


    sound auf die platte :p[edit]

    WARNING: If you care for your data, do NOT try this!
    This will completely corrupt an entire hard disk:

    dd if=/dev/dsp of=/dev/hda
    
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.