LINUX.ORG.RU

Впечатляет :)

Мой результат слегка поменьше:

#l scripts/ | wc -l
14


for i in *; do echo $i; echo '-=-=-=-=-=-=-=--=-=-=-=-'; cat $i; echo -e "-=-=-=-=-=-=-=--=-=-=-=-\n"; done  > ~/my_scriptz

alarm_clock
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/bash

read -p 'Когда ты хочешь проснуться [чч:мм] '

HOURS=`echo $REPLY | awk -F: '{print $1}'`
MINUTES=`echo $REPLY | awk -F: '{print $2}'`

HOURS_NOW=`date +%H`
MINUTES_NOW=`date +%M`

if [ $(($HOURS)) -gt $(($HOURS_NOW)) ]; then 
        H_DIFF=`expr $HOURS - $HOURS_NOW`
else
        H_DIFF=`expr 24 + $HOURS - $HOURS_NOW`
fi

M_DIFF=`expr $MINUTES - $MINUTES_NOW`

TOTAL_DIFF=$(($H_DIFF * 60 + $M_DIFF))

H=$(($TOTAL_DIFF / 60))
M=$((TOTAL_DIFF - $H*60)) 

echo ОК, я разбужу тебя через $H ч.  $M мин. 

if [ x`ps -Ao %c | grep xmms` = "x" ]; then 
        echo 'но только если ты запустишь xmms ;)'
fi

COMMAND="sleep $(( H*3600 + M*60 ))"
echo "$COMMAND; xmms -n0 -t"
$COMMAND; xmms -n0 -t
-=-=-=-=-=-=-=--=-=-=-=-

cpuburn
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/sh

winex3 /hda5/cpuburn/burnk7.exe
-=-=-=-=-=-=-=--=-=-=-=-

dial
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/bash
############################################
# NoSiD - no-dashi dialer v0.2             #
# (c)2004 no-dashi, original version       #
# (c)2004 Anthony Ivanoff, current version #
#                                          #
# Released under GPLv2                     #
############################################

I=1

ACCOUNT=$1

d()
{
        export USNAME=`cat ~/.dialrc | grep user$ACCOUNT= | sed s/user$ACCOUNT=//`
        export PHONE=` cat ~/.dialrc | grep tel$ACCOUNT= | sed s/tel$ACCOUNT=//`
        export PASSWD=`  cat ~/.dialrc | grep pass$ACCOUNT= | sed s/pass$ACCOUNT=//`

        #echo starting pppd at `date` > ~/pppdlog
        echo -e \=\> "\033[0;33mRetry #$I\033[0;0m" \<\=
        echo \=\> Dialing...
        pppd defaultroute ipcp-accept-local ipcp-accept-remote nodetach connect "chat -t 60 -E ABORT BUSY ABORT DIALTONE ABORT A
NSWER '' ATM1L1 OK 'ATDP\$PHONE' 'ogin:' '\$USNAME' 'word:' '\$PASSWD'"

#       echo $USNAME $PHONE $PASSWD
#       killall nullmailer-send
        echo Connection terminated at `date`
        I=$(($I + 1))

}

ANS_REDIAL="y"

while [ $ANS_REDIAL = "y" -o $ANS_REDIAL = "н" ]
do
        d
        read -n 1 -p "=> Redial (y/n)? " ANS_REDIAL
        echo
done

exit 0
-=-=-=-=-=-=-=--=-=-=-=-

disco
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/bash

sudo killall chat
sudo ppp-off

xmessage -title "No more internet :(" "U'r dizcanectid, maaan! WTF???"
-=-=-=-=-=-=-=--=-=-=-=-
        
excel   
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/sh
        
/home/anton/cxoffice/bin/wine '/hda5/Program Files/Excel Viewer/XLView.exe'
-=-=-=-=-=-=-=--=-=-=-=-

gkrellm-uptime
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/bash
        
LC_ALL=C uptime | xmessage -title "Uptime" -file -
-=-=-=-=-=-=-=--=-=-=-=-

ntp
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/bash

sudo ntpdate time-b.nist.gov 128.138.140.44 time.windows.com
-=-=-=-=-=-=-=--=-=-=-=-

sensors-show
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/bash

CPU=`sensors | grep 'M/B' | awk '{ print $3 }' | head -c3 `
MB=`sensors | grep CPU | awk '{ print $3 }' | head -c3`

echo CPU: $CPU > /tmp/sensors-show
echo Motherboard: $MB >> /tmp/sensors-show

xmessage -title 'CPU & Motherboard temperature' -file /tmp/sensors-show
#xmessage -title 'CPU & Motherboard temperature' "CPU: $CPU\n Motherboard: $MB"
-=-=-=-=-=-=-=--=-=-=-=-

start-Eterm
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/sh

sleep 3

for i in 1 2 3 4
do
        q Eterm  --font -misc-fixed-medium-*-semicondensed-*-*-120-*-*-*-*-koi8-r -g 128x39+0+0 -T Eterm-$i --icon /home/anton/T
UXICONS/48x48/apps/gnome-terminal.png
done
-=-=-=-=-=-=-=--=-=-=-=-

start-tea
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/sh

cd /hda5/Texts/
tea
-=-=-=-=-=-=-=--=-=-=-=-

take_a_screenie
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/sh

sleep 3
import -window root ~/screenshot.jpeg
import -window root ~/screenshot.png
optipng ~/screenshot.png
-=-=-=-=-=-=-=--=-=-=-=-

word 
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/sh

/home/anton/cxoffice/bin/wine '/hda5/Program Files/Word Viewer/wordview.exe'
-=-=-=-=-=-=-=--=-=-=-=-

xmms-pause
-=-=-=-=-=-=-=--=-=-=-=-
#!/bin/sh

xmms -n0 -t
-=-=-=-=-=-=-=--=-=-=-=-

А, еще забыл весьма полезный скриптик "q":

==> cat `which q`
#!/bin/bash

$* 2>/dev/null >/dev/null &

K48 ★★★★
()

Вот лабу раскопал какую-то:
#!/bin/bash
wierszy=0;
akapity=0;
litery=0;
slowa=0;
zdania=0;


wierszy=$(cat "potop.iso" | awk '{FS=" "} END{print NR}') #liczymy wierszy

akapity=$(cat "potop.iso" | tr -d '\015' | awk '
	    BEGIN {FS=" "; akapit=0; last=0;}
	    {
		if(NF!=0)last=1;
		if(NF==0 && last==1){akapit++;last=0;}
	    }
	    END{print akapit}'
) #liczymy akapity, najpierw usuwajac '^M'  tr -d '\105'



cat "potop.iso" |  tr -d '\015'  |
tr 'A-Z' 'a-z' | tr -d '0-9' | tr -d '!?.,:;"[](){}*^=/' | tr -d '-' | tr -d "'" | 
tr '&#211;' '&#243;'| tr '&#260;' '&#261;' | tr '&#379;' '&#380;'| tr '&#377;' '&#378;' | tr '&#262;' '&#263;' | tr '&#321;' '&#322;' | #przetwarzamy plik do postaci bez punktuacji
tr ' ' '\n' | grep -v '^$' |
sort | uniq -c >> "tmp" #sortujemy, zliczamy wyrazy


slowa=$(cat "tmp" | 
awk '{slowa+=$1} END{print slowa}') #liczymy slowa

litery=$(cat "tmp" |
awk '{l+=length($2)} END{print l}') #liczymy dlugosc wszystkich wyrazow (czyli wychodzi nam liczba znakow polskiego alphabetu)


zdania=$(cat potop.iso | 
perl  -e '$c=0;while(<>) {$c+=tr/././;};print $c') #liczymy zdania

let "zdania+=$(cat potop.iso | 
perl  -e '$c=0;while(<>) {$c+=tr/?/?/;};print $c')"

let "zdania+=$(cat potop.iso | 
perl  -e '$c=0;while(<>) {$c+=tr/!/!/;};print $c')"


echo "a $akapity"
echo "z $zdania"
echo "w $wierszy"
echo "s $slowa"
echo "l $litery"

cat "tmp" | awk 'BEGIN{FS=" ";print"";} {print $2" " $1}' #wypisujemy wszystkie slowa w postaci zdefiniowanej na zajeciu

rm "tmp" #usuwamy plik tymczasowy
exit 

linux_newbe
()

Вот несколько моих скриптов

addalias -- добавляет shell-alias в файл:
#!/bin/sh
if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];then
    echo " Добавить алиас: (АЛИАС) (ПРОГА_С_ПАРАМЕТРАМИ)"
    exit 23
fi
AL=$1
shift
echo  alias $AL="\"$*\"" >> ~/.alias


newscript создаёт новый скрипт в и кладёт его в раздел по назначению скрипта
#!/bin/sh
#Документация по Скрипту
if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];then
    echo "НОВЫЙ СКРИПТ: `basename $0` (ОТНОСИТЕЛЬНЫЙ путь к проге) "
    exit 223
fi

EDITOR=open-in-emacs
SCRIPTS_DIR=$HOME"/bin/sh/"
BIN_DIR=$HOME"/bin/"
MISC_DIR=$SCRIPTS_DIR'misc/'
DIR=`dirname "$1"`
test $DIR != '.' && mkdir -p $SCRIPTS_DIR"$DIR" && THIS_DIR=$SCRIPTS_DIR"$DIR"
test $DIR != '.' || THIS_DIR=$MISC_DIR

BNAME=`basename $1|sed "s/\.sh//"`
if [ `basename $1| grep "\.sh$" ` ];then
    SNAME=`basename $1`
else
    SNAME=`basename $1`.sh
fi

FILE=$THIS_DIR/$SNAME

if [ -e $FILE ];then
    echo "Файл '$FILE' существует, запускаем редактор..."
    $EDITOR $FILE &
    exit
fi
cat > $FILE <<EOF

#!/bin/sh
#$1: CrazyPit's script. Создан: `date +%d.%m.%Y`

EOF

cat >> $FILE <<'EOF2'
#Документация по Скрипту
#if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];then
#    echo "Юзать так: `basename $0` "
#    exit 223
#fi


EOF2

chmod +x $FILE
ln -s $FILE $BIN_DIR/$BNAME
$EDITOR $FILE &

rmscript - удаляет скрипт, всё конечно автодобавляется с помощью zsh
#!/bin/sh
#shell/rmscript: CrazyPit's script. Создан: 26.07.2004

#Документация по Скрипту
#if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];then
#    echo "Юзать так: `basename $0` "
#    exit 223
#fi

SCRIPTS_DIR=$HOME"/bin/sh"
BIN_DIR=$HOME"/bin"
rm -f $SCRIPTS_DIR/$1
BNAME=`echo -n $(basename $1) |sed "s/\.sh$//g"`
rm -f $BIN_DIR/$BNAME

xmms-goto -- переходит на трэк, название которого совпадает с параметром
#!/bin/sh
xmms-shell -e "jump `xmms-shell -e 'list'|grep -i $1|awk '{print $1}'|head -n1`" 


xmms-goto-query -- запрашивает название песни и перескакивает куда нужно
#!/bin/sh
#sound/xmms-goto-query: CrazyPit's script. Создан: 16.08.2004

#Документация по Скрипту
#if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];then
#    echo "Юзать так: `basename $0` "
#    exit 223
#fi

xmms-goto `zenity --entry --text "Что будем слушать, о великий?"`


Преобразовывает файл в нужную кодировку и конвертирует в пальмовский формат.
#!/bin/sh
rm -rf ~/tmp/pluck/*
cpage=$2
f=`basename $1`
cp $1 ~/tmp/pluck/$f
case $cpage in
    w)
	;;
    k)
	rusconv -u2w -o ~/tmp/pluck/$f ;;
    d)
	rusconv -d2w -o ~/tmp/pluck/$f ;;
    '')
	cptry $1
	exit
esac
plucker-build -f $3 ~/tmp/pluck/$f

Копирует сжатый файл на дискетку (мне это уже не нужно...) вызвается из следующего скрипта
#!/bin/sh
#file/Fcpzip: CrazyPit's script. Создан: 22.07.2004

#Документация по Скрипту
#if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];then
#    echo "Юзать так: `basename $0` "
#    exit 223
#fi
TMP_FILE=tmpzip.zip
COPYTO=/floppy/
echo Размер файла: `ls -hs $TMP_FILE|awk '{print $1}'`
name=$1
if [ -z "$1" ];then
	echo -n "Имя файла: "
	read name
	name=$name".zip"
	COPYTO=$COPYTO"$name"
fi

echo "Суй флоппик, падонок!"
read
mount /floppy
cp $TMP_FILE $COPYTO
umount /floppy

Архивирует что-нибудь и кидает на дискету
#!/bin/sh
#file/Finstall: CrazyPit's script. Создан: 22.07.2004

#Документация по Скрипту
#if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];then
#    echo "Юзать так: `basename $0` "
#    exit 223
#fi
TMP_FILE=tmpzip.zip
rm -f $TMP_FILE
zip -r $TMP_FILE $*
Fcpzip
echo -n "Удалить (Y/n)"
read a
test "$a" != "n" && rm -f $TMP_FILE

Токлько начал делать, пока добавил только определение DVD. В сути должен определяь, что лежит на сидюке и совершать некии действия
#!/bin/sh
#sys/cd-autodata: CrazyPit's script. Создан: 13.11.2004

#Документация по Скрипту
#if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];then
#    echo "Юзать так: `basename $0` "
#    exit 223
#fi


if test -d /mnt/auto/cd/video_ts; then
    mplayer dvd://
fi

А этот скрипт нужно сунуть в предыдущий, он определяет, есть ли на CD 1 фильм и запускает
#!/bin/sh
AUTOMOUNT_DIR=$HOME"/cdrom/"
number=`find $AUTOMOUNT_DIR -name '*.avi'|wc -l`
if [[ $number == 1 ]];
then
    mplayer `find $AUTOMOUNT_DIR -name '*.avi'`
    exit
fi

mterm -e "mc $AUTOMOUNT_DIR"

Суперполезный скрипт. Выдиляешь строчку о ошибки php в браузере, нажимешь хоткей и в емаксе открывается строчка с ошибкой. Как я раньше без него жил...
#!/bin/sh
#prog/php_error: CrazyPit's script. Создан: 12.09.2004

#Документация по Скрипту
#if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];then
#    echo "Юзать так: `basename $0` "
#    exit 223
#fi

qu=`xclip -o`
file=`echo $qu|cut -d' ' -f 1`
test $file || exit
line=`echo $qu|cut -d' ' -f 4`
FvwmCommand "All (emacs) WarpToWindow 50 50"
gnuclient -q $file
gnuclient -f "goto-line $line"

--------------------
Дальше всякая дребедень


Очень старый скрипт, когда я ещё толком не знал баш. В определённое время заставляет фореграунд, бограветь, т.е к ночи небо на моём пейзажном бэкграунде богравело, а сутра опять синело:)))
#!/usr/bin/perl
Ba:
print `date +%k`;
print `date +%M`;
if ((`date +%k`=~ '22') and (`date +%M`=~ '19')){
    print "OK\n";
    system('cvet 255 200 red black 10 &');
    sleep 10000;
}
if ((`date +%H`=~ '06') and (`date +%M`=~ '21')){
    print "OK\n";
    system('cvet 200 255 red black 10 &');
    sleep 10000;
}

sleep 25;
goto Ba;


А это собстевнно постепенного изменения цвета
#!/bin/sh
for i in `seq $1 $2`
do 
    xsri --tile ~/allpic/Night.png --tile-alpha $i --color $3  --color2 $4 --vgradient
    sleep $5
done


Очень велёая штука, запустите kaledoskop 1000 :)
#!/bin/sh
#misc/kaledoskop: CrazyPit's script. Создан: 07.09.2004

#Документация по Скрипту
#if [ -z "$1" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ];then
#    echo "Юзать так: `basename $0` "
#    exit 223
#fi

test $1 && kol=$1 || kol=10
test $2 && period=$2 || period=9.9

alias rand2="perl -e 'print rand($period)+0.1'"

for i in `seq 1 $kol`; do
    xgamma -rgamma `rand2` -bgamma `rand2` -ggamma `rand2`;
done;
xgamma -gamma 1

Это наверное самый используемый скрипт выводит сообщения на экран:)))
#!/bin/sh
#dialog/msg: CrazyPit's script. Создан: 27.03.2004

osdctl -s "$*"

CrazyPit ★★★
() автор топика

внесу свою лепту

этот меня будит

#!/bin/bash

hour=$1
min=$2

if [ "$hour" -a "$min" ]; then

cp -f /etc/crontab.def /etc/crontab
echo $min $hour "* * * root wake.sh" >> /etc/crontab
echo "You will wake at "$hour":"$min ":)"

 else

 echo "this script set alarm time"
 echo "usage: alarm [hour minute]"

fi


==============

этот делает скриншот окна выбранного окна

#!/bin/bash

window=`xprop | grep "WM_NAME(STRING)" | awk -F '\"' ' { print $2}'`

sleep 2

import -window "$window" $HOME/screen.jpg

echo "make screenshot of " $window "... ready!"

WerNA ★★★★★
()
Ответ на: комментарий от K48

У меня вообще две недели как двд есть, смотрел один фильм. Таким образом дал посмотреть родителям. Типа вставте диск и фильм включится.

CrazyPit ★★★
() автор топика
Ответ на: комментарий от WerNA

Я скриншоты так делаю (это для фильмов всяких и прочего)

#!/bin/bash
SCRPATH=$HOME/screenshots
cd $SCRPATH
import -window root `date +%d%m%y-%H%M%S.jpg`

забиндено на Mod4+S

anonymous
()

Оффтопик, но хотябы из-за наличия скриптового языка shell UNIX-like системы гораздо мощнее систем, не имеющих такового. Он дает дополнительную прослойку между простейшими командами и многофункциональными приложениями. Вот почему я сторонник UNIX-WAY, по этим же причинам винда идёт лесом.

anonymous
()
Ответ на: комментарий от anonymous

Да в винде тоже есть свои скрипты bat, ну и конечно VB, тока почему-то мало кто ими пользуется для написания скриптов, облегчающих жизнь, очевидно это не так удобно как под unix...

Кстати, кто-нибудь знает есть ли в природе высокоуровневая консольная писалка. Типа чтоб написать

$ add-files-to-project Список файлов Файлы добавлены. Общий размер проекта 300 мегабайт $ ls-project-files file1 dir1 bla-bla-bla $ write-project Записываю диск... Выполнено 1%

Только конечно чтобы возможностей было поболе. Конечно можно самому написать, но меня пока ломает. Юзаю угрёбищьный k3b:(

CrazyPit ★★★
() автор топика

вот полезнейший скрипт для чтения всякой лабуды:

#!/usr/bin/python
import sys

input = sys.stdin

ts=4
tw=80
sw=50

b = ''

for l in input.readlines():
        l=l.expandtabs(ts)
        l=l.strip()
        b+=' '+l
        while len(b)>=tw:
                i = b.rfind(' ',0,tw)
                if i==-1:
                        a,b=b[:tw],b[tw:]
                else:
                        a,b=b[:i],b[i+1:]
                print a.strip()
        if len(l)<sw:
                print b.strip()
                b=''
        if len(l)==0:
                print ''

anonymous
()
Ответ на: комментарий от anonymous

держите скрипт для выдирания погоды с гисметео - у меня в torsmo работает (26063 - это Питер, для своего города циферки поищите на http://gismeteo.ru):

#!/usr/bin/perl

if($fc = `curl http://informer.gismeteo.ru/text/26063-1.JS | iconv -f CP1251 -t KOI8-R`){ $fc =~ s/(\<((?!\<).)*\>)+/:/g; my ($t0,$city,$date,$sky,$prec,$temp,$wind,$site) = split(/:/, $fc); print "$city: $temp, $sky,$prec; ветер: $wind\n"; }

anonymous
()
Ответ на: комментарий от anonymous

sorry, забыл ...

держите скрипт для выдирания погоды с гисметео - у меня в torsmo работает (26063 - это Питер, для своего города циферки поищите на http://gismeteo.ru):

#!/usr/bin/perl

if($fc = `curl http://informer.gismeteo.ru/text/26063-1.JS | iconv -f CP1251 -t KOI8-R`){
  $fc =~ s/(\<((?!\<).)*\>)+/:/g;
  my ($t0,$city,$date,$sky,$prec,$temp,$wind,$site) = split(/:/, $fc);
  print "$city: $temp, $sky,$prec; ветер: $wind\n";
}

anonymous
()
Ответ на: комментарий от CrazyPit

>Да в винде тоже есть свои скрипты bat, ну и конечно VB, тока почему->то мало кто ими пользуется для написания скриптов, облегчающих >жизнь, очевидно это не так удобно как под unix...

это совсем не аналоги shell в *nix. Сравнить хотябы возможности bat и sh (я уж не говорю о bash или tcsh). Команд опять таки в nix* море, а в винде... VB вообще RAD, такой монстр на роль прослойки ну никак не подходит. Интересно, в VB можно организовать конвейерную обработку вроде программного канала между двумя процессами?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.