Beri bash i ebash / Говнокод #3502 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 ilardm, (Updated )

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

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

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

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

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

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8