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) RSS

    • мне сдается что даже на С это бы проще выглядело.

      если бы он хотя бы $() вместо `` использовал, было бы чутка читабельней. и после | ставил новые строчки где можно. и промежуточные переменные тоже никто не запрещал.... вообщем говно.
      Ответить
    • Далеко пойдет!
      Ответить

    Добавить комментарий