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, +20)

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
#!/bin/bash

# ...
PWD=`pwd`
cd $OTHERDIR
# ...
cd $PWD

скрипт был написан навороченым солярис инженером. я ожидал каких-там BSD или SysV выкрутасов, а как увидел в начале /bin/bash начал уже сомневатся. парой десятков строк ниже нашел данный перл, и дальше вчитатываться не стал - все надо в ж переписывать....

ЗЫ $PWD это встроеная переменная которая устанавливается коммандой cd. ее можно руками менять, но по каждому cd она будет всегда в полный путь текущего каталога ставится. Другими словами PWD=`pwd` как и cd $PWD есть просто NOPы.

Dummy00001 Dummy00001, (Updated )

Комментарии (12, +12)

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

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
#! /bin/sh

# качаем страницу и ищем ссылку на закачку
dllink=`curl -# $1|pcregrep -o 'http.+file.qip.ru/get[^"]+'`

# качаем вторую страницу и ищем линк на файл и очищаем имя файла от мусора

dlhtml=`curl -# "$dllink"`
dlfilelink=`echo $dlhtml|pcregrep -o "http\:\/\/dc\d{1,10}.file.qip.ru\/download[^']+"`
dlfilename1=`echo $dlhtml|pcregrep -o "http\:\/\/dc\d{1,10}.file.qip.ru\/download[^?]+"`
dlfilename=`basename $dlfilename1`

wget "$dlfilelink" -O "$dlfilename"

Качалка файлов с file.qip.ru

Radjah Radjah, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
#! /bin/sh

htmlvar=`curl -# $1`
serv=`echo $htmlvar| pcregrep -o -e "srv\'\:[^,]+"|pcregrep -o "http[^']+"`
filevar=`echo $htmlvar| pcregrep -o "'file':[^,]+"|pcregrep -o "\d{1,10}[^']+"`
urlvar=$serv'flv2/'$filevar
echo $urlvar

Тупой скрипт для выдерания ссылок на ролки со страницы xhamster.com

Radjah Radjah, (Updated )

Комментарии (6, +6)

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

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
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
#!/bin/bash
#   
#   program file name: urlmin.sh
#   program version: 0.4

_help()
{

prg=$(basename $0)
cat << EOF

options:
   -h      See this page
   -l      Viewed all names of minifer sites
   -s      
   	  lb.vg
   	  minify.me
   	  is.gd
   -r      Random mode of minifiers
   -u      url link
examples:
   random mode     - minifiers: ${prg} -r -u 'http://wikimapia.org/#lat=36.7923994&lon=53.1100881&z=18&l=1&m=b'
   only 1 minifier - is.gd minifier: ${prg} -s is.gd -u 'http://wikimapia.org/#lat=36.7923994&lon=53.1100881&z=18&l=1&m=b'
   or lb.vg minifier: ${prg} -s lb.vg -u 'http://wikimapia.org/#lat=36.7923994&lon=53.1100881&z=18&l=1&m=b'
   and other

EOF

exit 0
}

[ ! -f "$(which curl)" ] && { echo "Установите утилиту curl" ; exit 1 ;}

_user_agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.4) Gecko/20100503 Firefox/3.6.4"
_sets_minifiers=( "lb.vg" "is.gd" "minify.me" )

_e()         { echo -e "${*}" ;}
_get_page()  { curl -s -A "$USER_AGENT" ${1} | tr -d '\n' || { clear ; echo -e "${B_T}${RC}Error${CRS}! curl in function _get_page has exited abnormaly: ${1}" ; exit 1 ;} ;}
_post_page() { curl -s -A "$USER_AGENT" -d "${2}" "${1}" | tr -d "\n" || { clear ; echo -e "${B_T}${RC}Error!${CRS} curl in function _post_page has exited abnormaly: ${1} -> ${2}" ; exit 1 ;} ;}
_urlencode() { LANG=C awk 'BEGIN { EOL = "%0A" ; split ("1 2 3 4 5 6 7 8 9 A B C D E F", hextab, " ") ; hextab [0] = 0 ; for ( i=1; i<=255; ++i ) ord [ sprintf ("%c", i) "" ] = i + 0 } ; { encoded = "" ; for ( i=1; i<=length ($0); ++i ) { c = substr ($0, i, 1) ; if ( c ~ /[a-zA-Z0-9.-]/ ) { encoded = encoded c } else if ( c == " " ) { encoded = encoded "+" } else { lo = ord [c] % 16 ; hi = int (ord [c] / 16); encoded = encoded "%" hextab [hi] hextab [lo] } } ; printf ("%s", encoded EOL) } END { }' "$@" | sed 's|%0A||g' ;}
_random()    { [ -n "${1}" ] && { while :; do zz=$(y=0;for ((x=${1};x>=y;y++)) ; do [ "$y" == "${RANDOM[@]:2:1}" ] && [ -n "$y" ] && { echo $y ; break ;} ; done ) ; [ -n "$zz" ] && { echo "$zz" ; break ;} ; done ;} ;}

# sets
while getopts "hu:s:rl" option ; do case $option in
		h) _help                ;;
		u) url_path="$OPTARG"   ;;
		s) _set_min="$OPTARG"    ; set_min_num=$(j=0 ; for x in ${_sets_minifiers[*]} ; do [ "${x}" == "${_set_min}" ] && _e "${j}" ; ((j++)) ; done) ;;
		r) mode_random="yes"     ; set_min_num="$(_random $((${#_sets_minifiers[*]}-1)) )" ;;
		l) list_mins="yes"      ;;
		v) set_verbose="-v"     ;;
esac ; done

case $set_min_num in
0) 
   _url_enc=$(_e "${url_path}" | _urlencode)
   _url_host="${_sets_minifiers[$set_min_num]}"
   _obtained=$(_post_page "http://${_url_host}/default.asp" "Orig_URL=${_url_enc}&show_ve=1&Categ=Humor" | egrep -o "http://${_url_host}/[a-Z0-9]+'" | sort -u | sed "s|'||g;s|http://||g") ;;
1)
   _url_enc=$(_e "${url_path}" | _urlencode)
   _url_host="${_sets_minifiers[$set_min_num]}"
   _obtained=$(_post_page "http://${_url_host}/create.php" "URL=${_url_enc}" | egrep -o "http://${_url_host}/[a-Z0-9]+\" target" | sed 's|\" target||g;s|http://||g') ;;
2) 
   _url_enc=$(_e "${url_path}" | _urlencode)
   _url_host="${_sets_minifiers[$set_min_num]}"
   _obtained=$(_post_page "http://${_url_host}/create.php" "url=${_url_enc}" | egrep -o "http://${_url_host}/\?[a-Z0-9]+" | sed 's|http://||g') ;;
esac

[ -z "$1"           ] && _help
[ -n "$set_min_num" ] && _e "Link: ${_obtained}"
[ -n "$list_mins"   ] && _e "Minifiers:\n\n$(for i in ${_sets_minifiers[*]} ; do _e "  ${i}" ; done)\n"

# eof urlmin.sh

url minifier

# typical define:
-=>> ./urlmin.sh -s is.gd -u 'http://wikimapia.org/#lat=36.7923994&lon=53.1100881&z=18&l=1& m=b'
Link: is.gd/ckjsg

# random minifier:
-=>> ./urlmin.sh -r -u 'http://wikimapia.org/#lat=36.7923994&lon=53.1100881&z=18&l=1& m=b'
Link: minify.me/?qkvbp2

pp-- pp--, (Updated )

Комментарии (15, +15)

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

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
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
#!/bin/bash
case $1 in 
	u|use)
		case $2 in 
			e) $EDITOR /etc/portage/package.use
			;;
			s) grep -n --color "$3" /etc/portage/package.use
			;;
			d) 
			if echo "$3" | grep -q -e "[1-9]"
			then
			DELVAR="`echo $3 $4 $5 $6 $7 $8 $9 | sed 's/ /\n/g'`"
			echo "Do you want delete next line(s):
`echo "$DELVAR" | sed 's/$/!d/g' | xargs -n 1 | while read line ; do
	sed "$line" /etc/portage/package.use -i
done`			 
Yes/No?"
			read "answer"
			case "$answer" in 
			y|yes) echo "$DELVAR" | sed 's/$/d/g' | xargs -n 1 | while read yesno ; do
	sed "$yesno" /etc/portage/package.use -i
done
;;
esac
		else
			DELVAR="`grep -n --color "$3" /etc/portage/package.use | cut -d":" -f1`"
			echo "Do you want delete next line(s):
`grep -n --color "$3" /etc/portage/package.use`
Yes/No?"
			read "answer"
			case "$answer" in 
			y|yes) echo "$DELVAR" | sed 's/$/d/g' | xargs -n 1 | while read yesno ; do
	sed "$yesno" /etc/portage/package.use -i
done
			;;
			esac
			fi
			;;
			*) echo "$2 $3 $4 $5 $6 $7 $8 $9" >> /etc/portage/package.use
			;;
		esac
	;;
	i) euses $3
	;;
	s) eix "$3"
	;;
	sync) sudo layman --sync-all ; emerge --sync ; eix-update
	;;
	U) exec emerge -vauND world
	;;
	i) exec emerge -va "$2 $3 $4 $5 $6 $7 $8 $9"
	;;
	mkconf) sudoedit /etc/make.conf
	;;
	*|-h|--help) echo "Использование: pkg [ключ] [параметры ключа]
	u [USE] - операции с USE-флагами в файле /etc/portage/package.use
		e - открыть файл в редакторе из '\$EDITOR' ("$EDITOR")
		s - поиск в файле grep'ом
		d - удаление строк из файла (в качестве параметра принимаются как номера строк, так и название пакета/флага)
		i - просмотр информации о флагах (с помощью euses) 
		* - все иные значения будут записаны в файл
	k [KEYWORDS] - операции с keywords-масками в файле /etc/portage/package.keywords
		e - открыть файл в редакторе из '\$EDITOR' ("$EDITOR")
		s - поиск в файле grep'ом
		d - удаление строк из файла (в качестве параметра принимаются как номера строк, так и название пакета/флага)
		* - все иные значения будут записаны в файл
	i - установка пакета (emerge -av)
	s - поиск по базе пакетов (с помощью eix)
	sync - синхронизация баз layman, emerge и запуск eix-update
	U - обновление системы (emerge -vauND world)
	mkconf - открыть для редактирования файл /etc/make.conf (используя sudoedit)"
	;;
esac

Нашел свой старый код.. Когда-то от нечего делать пытался написать некую обёртку ко всяким джентовским утилитам. До конца так и не дописал, были некоторые проблемы с кодом, которые мне решать было лень. Но сейчас залез в тот код и ужаснулся..
P.S. Файл немного урезан от оригинала, т.к. те же действия повторяются для разных файлов.

Iliander Iliander, (Updated )

Комментарии (3, +3)

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

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
#!/bin/bash

curl http://www.radioroks.com.ua/online.php | grep '<b>' > /tmp/roks

sed -e 's/<[^>]*>//g' /tmp/roks > /tmp/roks2
sed -e 's/·/- /g' /tmp/roks2 > /tmp/roks
sed -e 's/\t//g' /tmp/roks > /tmp/roks2

sed -e 's/\:-/\:\
-/g' /tmp/roks2 > /tmp/roks

cat /tmp/roks | head -n $1

Кажется, писал под утро. Не вдуплился юзать только 1 файл, а жонглировал /tmp/roks и /tmp/roks2 ...

Anderson Anderson, (Updated )

Комментарии (10, +10)