1. bash / Говнокод #6078

    −130

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    #!/bin/bash
    if [[ -d "$1" ]]; then
            /usr/bin/ls -lad -- "${1}" | awk '$1~/dr.x/{print $3}'                                                                                                  #if user
            gid="`/usr/bin/ls -lnad -- \"${1}\" | awk '{print $4}'`"
            USERS="`/usr/bin/ls -lad -- \"${1}\" | awk '{print $3}'`|`cat /etc/group | nawk -F: -v var2=$gid '$3 == var2 {print $4}' | tail -1`|`cat /etc/passwd | nawk -F: -v var2=$gid '$4 == var2 {print var=var\"|\"$1}' | tail -1`|`niscat group.org_dir | nawk -F: -v var2=$gid '$3 == var2 {print var=var\"|\"$4}' | tail -1`|`niscat passwd.org_dir | nawk -F: -v var2=$gid '$4 == var2 {print var=var\"|\"$1}' | tail -1`|`/usr/bin/ls -lad -- \"${1}\" | awk '{print $3}'`" #owner | group | passwd | niscat group | niscat passwd | owner
            if test "`/usr/bin/ls -lnad -- \"${1}\" | awk '$1~/..r.x[r-]/{print $4}'`";then                                                 #if group
                    echo ${USERS} | sed -e 's/,/|/g' | sed 's/||*/|/g' | nawk -F"|" '{for (i=1;i<=NF;i++) print $i}' | sort | uniq | sed -e '/^$/d' | grep -v "`/usr/bin/ls -lad -- "$1" | awk '{print $3}'`"
            fi
            if test "`/usr/bin/ls -lnad -- \"${1}\" | awk '$1~/r.x$/{print $4}'`";then                                                              #if other
                    niscat passwd.org_dir | cat /etc/passwd - | awk -F: '{print $1}' | sort | uniq | sed -e '/^$/d' | egrep -v "(`echo ${USERS} | sed -e 's/,/|/g' | sed 's/||*/|/g'`)"
            fi
    fi

    Одногрупник написал на баше лабораторную работу

    Ccik, 24 Марта 2011

    Комментарии (2)
  2. bash / Говнокод #6070

    −126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    #!/bin/bash
    
    sed -e 's/й/y/g' -i $1
    sed -e 's/ц/c/g' -i $1
    sed -e 's/у/u/g' -i $1
    sed -e 's/к/k/g' -i $1
    sed -e 's/е/e/g' -i $1
    sed -e 's/н/n/g' -i $1
    sed -e 's/г/g/g' -i $1
    sed -e 's/ш/sh/g' -i $1
    sed -e 's/щ/sch/g' -i $1
    sed -e 's/з/z/g' -i $1
    sed -e 's/х/h/g' -i $1
    sed -e 's/ф/f/g' -i $1
    sed -e 's/ы/i/g' -i $1
    sed -e 's/в/v/g' -i $1
    sed -e 's/а/a/g' -i $1
    sed -e 's/п/p/g' -i $1
    sed -e 's/р/r/g' -i $1
    sed -e 's/о/o/g' -i $1
    sed -e 's/л/l/g' -i $1
    sed -e 's/д/d/g' -i $1
    sed -e 's/ж/j/g' -i $1
    sed -e 's/э/e/g' -i $1
    sed -e 's/я/ya/g' -i $1
    sed -e 's/ч/ch/g' -i $1
    sed -e 's/с/s/g' -i $1
    sed -e 's/м/m/g' -i $1
    sed -e 's/и/i/g' -i $1
    sed -e 's/т/t/g' -i $1
    sed -e 's/б/b/g' -i $1
    sed -e 's/ю/yu/g' -i $1

    Перевод в английские буквы

    AliceGoth, 23 Марта 2011

    Комментарии (12)
  3. bash / Говнокод #5734

    −131

    1. 1
    ping -q -c 2 -i "0.$ACTN" localhost > /dev/null

    Способ заснуть менее чем на секунду, не дописывая для этого отдельную программу Сишную с использованием nanosleep().

    xaionaro, 21 Февраля 2011

    Комментарии (28)
  4. bash / Говнокод #5674

    −135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    parsemask() {
            echo -n "$@" | tr -d "\n" | sed -e "s#%%#\n#g" | sed -e "s#%C#$CLUSTER#g" | sed -e "s#%R#$XENXROOT#g" | tr "\n" "%";
            return;
    }
    
    for pvar in STATUSPATH LOGPATH DRBDLOGPATH XENXPREFIX CLUSTERSPATH; do
            eval R${pvar}="`parsemask "$(eval echo \\\$${pvar})"`"
    done

    Реализация разыменовки и замены в цикле, для того, чтобы для каждой переменной (например LOGPATH="%R/var/log/xenx/%C.log") определилась соответствующая переменная с произведёнными подстановками (например RLOGPATH="/usr/local/xenx/var/log/xenx/stormrage.log").

    xaionaro, 14 Февраля 2011

    Комментарии (3)
  5. bash / Говнокод #5670

    −142

    1. 1
    rm -r * .tmp

    Вот что бывает, когда ранним солнечным весенним днем вошел в систему под рутом и в консольную команду затесался один лишний пробел...

    Говногость, 14 Февраля 2011

    Комментарии (15)
  6. bash / Говнокод #5387

    −136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    #!/bin/bash
    
    ys="y"
    ss=0
    for fl in `find $1`
    do
    echo -n "Do you want archive file $fl?(y/n)"
    read ck
    if [ "$ck"=="$ys" ]; then
    tar -cf $fl.tar $fl
    ls -la $fl
    ls -la $fl.tar
    os=`ls -la $fl | gawk '{ print $5 }'`
    ts=`ls -la $fl.tar | gawk '{ print $5 }'`
    let "ds=ts-os"
    let "ss=ss+ds"
    echo "ss $ss ds  $ds"
    fi
    
    done

    Архивирует рекурсивно все файлы и расчитывает разницу между архивом и оригиналом.

    AliceGoth, 25 Января 2011

    Комментарии (4)
  7. bash / Говнокод #5373

    −137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    #!/bin/bash
    
    while :
    do
    declare -a fls;
    c=0;
    z=0
    for ff in `find $1`
    do
    for tf in `du $ff | gawk '{ print $1 }'`
    do
    fl=`echo $tf | gawk '{ print $1 }'`
    if [ "$tf" -eq "$z" ]; then
    echo tf $tf
    echo ff $ff
    fls[$c]=$ff;
    rm $ff
    fi
    done
    done
    echo ${fls[*]}
    sleep 1m;
    done

    Удаляет пустые файлы

    AliceGoth, 24 Января 2011

    Комментарии (1)
  8. bash / Говнокод #5363

    −134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #!/bin/bash
    c1=`cat ~/c1.txt`
    let c1++
    echo $c1
    echo $c1 > ~/c1.txt
    date >> ~/fd.txt
    exit 0

    Счётчик запуска считает количество и дату записывет в файл через crontab, я им пользуюсь сам.

    AliceGoth, 23 Января 2011

    Комментарии (6)
  9. bash / Говнокод #5362

    −141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    #!/bin/bash
    
    function mdf()
    {
    cd $1
    echo -n "\$1 "$1
    echo
    for a in "1 2 3 4 5"
    do
      mkdir $1$a
      echo -n "1a "$1$a
      echo
    while let "$2<=5"
    do
      c=$2
      let c++
      mdf "$a" $c 
    done
    while let "$2>=5"
    do
    ca=$2
    while let "ca>0"
    do
      cd ..
      let ca--
    done
    mdf "$a" $ca
    done
    done
    }
    
    mdf ./ 0

    Мдф

    AliceGoth, 23 Января 2011

    Комментарии (3)
  10. bash / Говнокод #5361

    −136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    #!/bin/bash
    
    edd=$PWD
    a=`echo {0..10}/{0..10}`
    b=`echo {0..10}/{0..10}/{0..10}`
    mkdir {0..10}
    for ma in `echo {0..10}`
    do
      echo $ma
      echo $PWD
      cp $0 $ma/$0
    done
    for md in $a
    do
      mkdir $md
      echo $md
      echo $PWD
      cp $0 $md/$0
    done
    for mdb in $b
    do
      mkdir $mdb
      echo $mdb
      echo $PWD
      cp $0 $mdb/$0
    done

    Директории и циклы на bash

    AliceGoth, 23 Января 2011

    Комментарии (1)