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

    −138

    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
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    #!/bin/sh
    
    net() {
        if ( grep eth0 /proc/net/dev > /dev/null );
        then
    		if (ifconfig eth0|grep -e "inet addr:" > /dev/null);
    		then
    			echo "eth0";
    			ifconfig eth0|grep -e "inet addr:" | sed 's/.*r://; s/\ .*//';
    			ifconfig eth0|grep bytes | sed 's/\ //g; s/(/$/; s/.*\$//; s/).*(/ /; s/)//'
    			echo "::"
    		fi;
        fi;
    
        if ( grep wlan0 /proc/net/dev > /dev/null );
        then
    		if (ifconfig wlan0|grep -e "inet addr:" > /dev/null);
    		then
    			echo "wlan0";
    			ifconfig wlan0|grep -e "inet addr:" | sed 's/.*r://; s/\ .*//';
    			ifconfig wlan0|grep bytes | sed 's/\ //g; s/(/$/; s/.*\$//; s/).*(/ /; s/)//'
    			echo "::"
    		fi;
        fi;
    
        if ( grep usb0 /proc/net/dev > /dev/null );
        then
    		if (ifconfig usb0|grep -e "inet addr:" > /dev/null);
    		then
    			echo "usb0";
    			ifconfig usb0|grep -e "inet addr:" | sed 's/.*r://; s/\ .*//';
    			ifconfig usb0|grep bytes | sed 's/\ //g; s/(/$/; s/.*\$//; s/).*(/ /; s/)//'
    			echo "::"
    		fi;
        fi;
    }
    
    space() {
        df -h|grep -e "/$" | sed 's/^[a-z0-9/]*\ *[0-9,]*[MG]\ *[0-9,]*[MG]//; s/[0-9]*\%//; s/\ *//g; s/\// \//'
        echo "::"
        df -h|grep -e "/home$" | sed 's/^[a-z0-9/]*\ *[0-9,]*[MG]\ *[0-9,]*[MG]//; s/[0-9]*\%//; s/\ *//g; s/\// \//'
    }
    
    battery() {
        if ( grep -e "discharging" /proc/acpi/battery/BAT0/state > /dev/null || \
    		grep -e "charging$" /proc/acpi/battery/BAT0/state > /dev/null);
        then
    		echo -n "::" $(~/.wmii-3.5/battery.py)
        fi;
    }
    
    echo -n $(net)\
        $(space)\
        "::" "LA" $(uptime | sed 's/.*e://; s/,\ .*//')\
        "::" $(uptime | sed 's/.*up//; s/[0-9]\ users.*//; s/,//g')\
        "::" $(cat /proc/acpi/thermal_zone/TZ00/temperature|sed 's/[a-z]*:\ *//; s/\ /°/')\
        $(battery)\
        "::" $(date "+%F %R:%S")\
        "\n"

    можно сказать, первы серьёзный опыт использования bash(скрипт для нижней панельки wmii). Не покидает ощущение, что ооочень много костылей.

    Запостил: ilardm, 17 Июня 2010

    Комментарии (20) RSS

    • На что ты рассчитываешь?
      Что тебе тут все ошибки укажут и перепишут за тебя?
      Не тут-то было, блджад.
      В твой понос никто вникать не будет.
      Ответить
      • Конечно! это же как раз тот ресурс, где исправляют все ошибки, куда выкладывают код именно за этим.
        "...выдавили из себя код, который нельзя назвать нормальным.." как оаз об этом и говорит.
        Ответить
        • хуйтеврот
          дочитай хотя бы до конца
          Ответить
          • извиняюсь, <irony></irony> не проставил. думал так понятно будет.
            ещё что-нибудь скажите?
            Ответить
            • ты тут не выебывайся
              хочешь создать имидж чистюльки в белой рубашке-пиджачке -- хер получится, тебя здесь видят насквозь, быдлокодеришка
              Ответить
    • Обычный кустарный скрипт, IMHO.

      А ещё раз, зачем нужен этот скрипт? Уж очень он мне напоминает conky :)
      Ответить
      • шобы запускать battery.py када она содица
        и показывать температуру
        Ответить
        • Я, к сожелению, не пользовался wmii. Хотя для DWM писал программку похожего назначения, только та была на Си и без вызова внешних программ... Но тут явно ресурсов не жалели, поэтому вполне можно было использовать уже существующие средства для вывода системной информации, например "conky". AFAIK, он умеет писать в stdout/stderr, при соотвествующих настройках.
          Ответить
      • http://clck.ru/0qFF (нижняя панелька)
        Ответить
        • Видимо я зря задал этот вопрос, т.к. инторнации тут не расставишь... Вопрос был риторическим :).

          Моя мысль была том, что если не жалко ресурсов, то велосипед изобретать не надо было.
          Ответить
          • я в мане коньков не увидел где можно в stdout писать. да и sed хотелось помучать.

            P.S. таки ресурс не зря так называется
            Ответить
            • У меня в man написано, что если добавить в конфигурацию строки:
              out_to_console yes
              out_to_x no
              то вывод будет производиться в stdout.
              Ответить
    • код, который написан что бы его не читали... никто читать не будет.
      читабельный код редко бывает говнокодом.
      ах да, пример ниасилил
      Ответить
      • По-моему вполне понятно что написано. Слишком простой код, чтобы запутаться в том, что он делает.
        Ответить
    • Где здесь Nemerle?
      Ответить

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