- 1
- 2
- 3
- 4
- 5
- 6
- 7
#!/bin/bash
# ...
PWD=`pwd`
cd $OTHERDIR
# ...
cd $PWD
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−136
#!/bin/bash
# ...
PWD=`pwd`
cd $OTHERDIR
# ...
cd $PWD
скрипт был написан навороченым солярис инженером. я ожидал каких-там BSD или SysV выкрутасов, а как увидел в начале /bin/bash начал уже сомневатся. парой десятков строк ниже нашел данный перл, и дальше вчитатываться не стал - все надо в ж переписывать....
ЗЫ $PWD это встроеная переменная которая устанавливается коммандой cd. ее можно руками менять, но по каждому cd она будет всегда в полный путь текущего каталога ставится. Другими словами PWD=`pwd` как и cd $PWD есть просто NOPы.
−143
#! /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
−140
#! /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
−142
#!/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
−132
yes | rm -r /
Так красивее :)
−136
#!/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. Файл немного урезан от оригинала, т.к. те же действия повторяются для разных файлов.
−130
#!/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 ...
−135
find $PWD -maxdepth 0 2>/dev/null
Вместо "ls"...
−138.6
# sysinfo bar
while :; do
echo $(uptime | awk '{ print $3"d, "$5" "$6"u"}') '|' $(free -k | grep "cache:" | awk '{print $3"k / "$4"k"}') '|^fg(#cccc00)' $(date | sed 's,MSD .*,,') "^fg(#bbbbdd)|" $(cat /proc/loadavg | awk '{print $1" "$2" "$3}') '|' $(gcpubar -o -c 1 | sed 's,CPU: ,,') ' '
sleep 1
done | dzen2 -ta r -x $WIDTH -y $Y $COLORS -fn $FONT -e 'button1=exec:mpc toggle;button2=exec:mpc prev;button3=exec:mpc next;button4=exec:mpcvolume +;button5=exec:mpcvolume -' &
подобных баров с пяток в скрипте, не стал все приводить
−135.4
echo ""
echo -e '\033[1m'" MONITOR FOR SYSTEM SWITCH $current"'\033[0m'
echo " *************************************************"
#1
{
read line1
} < $DIR_FLAG/$file1
{
read lines1
} < $DIR_FLAG/$files1
if [ "$line1" = "STOP" ]; then echo -e '\E[31m'" TASK 1: --> $lines1" ; tput sgr0
else echo -e '\E[32m'" TASK 1: >< $lines1" ; tput sgr0
fi
#2
{
read line2
} < $DIR_FLAG/$file2
{
read lines2
} < $DIR_FLAG/$files2
if [ "$line2" = "STOP" ]; then echo -e '\E[31m'" TASK 2: --> $lines2" ; tput sgr0
else echo -e '\E[32m'" TASK 2: >< $lines2" ; tput sgr0
fi
#3
{
read line3
} < $DIR_FLAG/$file3
{
read lines3
} < $DIR_FLAG/$files3
if [ "$line3" = "STOP" ]; then echo -e '\E[31m'" TASK 3: --> $lines3" ; tput sgr0
else echo -e '\E[32m'" TASK 3: >< $lines3" ; tput sgr0
fi
#4
{
read line4
} < $DIR_FLAG/$file4
{
read lines4
} < $DIR_FLAG/$files4
if [ "$line4" = "STOP" ]; then echo -e '\E[31m'" TASK 4: --> $lines4" ; tput sgr0
else echo -e '\E[32m'" TASK 4: >< $lines4" ; tput sgr0
fi
#5
{
read line5
} < $DIR_FLAG/$file5
{
read lines5
} < $DIR_FLAG/$files5
if [ "$line5" = "STOP" ]; then echo -e '\E[31m'" TASK 5: --> $lines5" ; tput sgr0
else echo -e '\E[32m'" TASK 5: >< $lines5" ; tput sgr0
fi
#6
{
read line6
} < $DIR_FLAG/$file6
{
read lines6
} < $DIR_FLAG/$files6
if [ "$line6" = "STOP" ]; then echo -e '\E[31m'" TASK 6: --> $lines6" ; tput sgr0
else echo -e '\E[32m'" TASK 6: >< $lines6" ; tput sgr0
fi
#7
{
read line7
} < $DIR_FLAG/$file7
{
read lines7
} < $DIR_FLAG/$files7
if [ "$line7" = "STOP" ]; then echo -e '\E[31m'" TASK 7: --> $lines7" ; tput sgr0
else echo -e '\E[32m'" TASK 7: >< $lines7" ; tput sgr0
fi
#8
{
read line8
} < $DIR_FLAG/$file8
{
read lines8
} < $DIR_FLAG/$files8
if [ "$line8" = "STOP" ]; then echo -e '\E[31m'" TASK 8: --> $lines8" ; tput sgr0
else echo -e '\E[32m'" TASK 8: >< $lines8" ; tput sgr0
fi
#9
{
read line9
} < $DIR_FLAG/$file9
{
read lines9
} < $DIR_FLAG/$files9
if [ "$line9" = "STOP" ]; then echo -e '\E[31m'" TASK 9: --> $lines9" ; tput sgr0
else echo -e '\E[32m'" TASK 9: >< $lines9" ; tput sgr0
fi
и т.д.
вот такой кодец остался нам в наследство....