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

    −3

    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?
      Ответить

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