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

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
if [[ -d "$1" ]]; then
        /usr/bin/ls -lad -- "${1}" | awk '$1~/dr.x/{print $3}'                                                                                                  #if user
        gid="`/usr/bin/ls -lnad -- \"${1}\" | awk '{print $4}'`"
        USERS="`/usr/bin/ls -lad -- \"${1}\" | awk '{print $3}'`|`cat /etc/group | nawk -F: -v var2=$gid '$3 == var2 {print $4}' | tail -1`|`cat /etc/passwd | nawk -F: -v var2=$gid '$4 == var2 {print var=var\"|\"$1}' | tail -1`|`niscat group.org_dir | nawk -F: -v var2=$gid '$3 == var2 {print var=var\"|\"$4}' | tail -1`|`niscat passwd.org_dir | nawk -F: -v var2=$gid '$4 == var2 {print var=var\"|\"$1}' | tail -1`|`/usr/bin/ls -lad -- \"${1}\" | awk '{print $3}'`" #owner | group | passwd | niscat group | niscat passwd | owner
        if test "`/usr/bin/ls -lnad -- \"${1}\" | awk '$1~/..r.x[r-]/{print $4}'`";then                                                 #if group
                echo ${USERS} | sed -e 's/,/|/g' | sed 's/||*/|/g' | nawk -F"|" '{for (i=1;i<=NF;i++) print $i}' | sort | uniq | sed -e '/^$/d' | grep -v "`/usr/bin/ls -lad -- "$1" | awk '{print $3}'`"
        fi
        if test "`/usr/bin/ls -lnad -- \"${1}\" | awk '$1~/r.x$/{print $4}'`";then                                                              #if other
                niscat passwd.org_dir | cat /etc/passwd - | awk -F: '{print $1}' | sort | uniq | sed -e '/^$/d' | egrep -v "(`echo ${USERS} | sed -e 's/,/|/g' | sed 's/||*/|/g'`)"
        fi
fi

Одногрупник написал на баше лабораторную работу

Ccik Ccik, (Updated )

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

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

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

sed -e 's/й/y/g' -i $1
sed -e 's/ц/c/g' -i $1
sed -e 's/у/u/g' -i $1
sed -e 's/к/k/g' -i $1
sed -e 's/е/e/g' -i $1
sed -e 's/н/n/g' -i $1
sed -e 's/г/g/g' -i $1
sed -e 's/ш/sh/g' -i $1
sed -e 's/щ/sch/g' -i $1
sed -e 's/з/z/g' -i $1
sed -e 's/х/h/g' -i $1
sed -e 's/ф/f/g' -i $1
sed -e 's/ы/i/g' -i $1
sed -e 's/в/v/g' -i $1
sed -e 's/а/a/g' -i $1
sed -e 's/п/p/g' -i $1
sed -e 's/р/r/g' -i $1
sed -e 's/о/o/g' -i $1
sed -e 's/л/l/g' -i $1
sed -e 's/д/d/g' -i $1
sed -e 's/ж/j/g' -i $1
sed -e 's/э/e/g' -i $1
sed -e 's/я/ya/g' -i $1
sed -e 's/ч/ch/g' -i $1
sed -e 's/с/s/g' -i $1
sed -e 's/м/m/g' -i $1
sed -e 's/и/i/g' -i $1
sed -e 's/т/t/g' -i $1
sed -e 's/б/b/g' -i $1
sed -e 's/ю/yu/g' -i $1

Перевод в английские буквы

AliceGoth AliceGoth, (Updated )

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

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

0

  1. 1
ping -q -c 2 -i "0.$ACTN" localhost > /dev/null

Способ заснуть менее чем на секунду, не дописывая для этого отдельную программу Сишную с использованием nanosleep().

xaionaro xaionaro, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
parsemask() {
        echo -n "$@" | tr -d "\n" | sed -e "s#%%#\n#g" | sed -e "s#%C#$CLUSTER#g" | sed -e "s#%R#$XENXROOT#g" | tr "\n" "%";
        return;
}

for pvar in STATUSPATH LOGPATH DRBDLOGPATH XENXPREFIX CLUSTERSPATH; do
        eval R${pvar}="`parsemask "$(eval echo \\\$${pvar})"`"
done

Реализация разыменовки и замены в цикле, для того, чтобы для каждой переменной (например LOGPATH="%R/var/log/xenx/%C.log") определилась соответствующая переменная с произведёнными подстановками (например RLOGPATH="/usr/local/xenx/var/log/xenx/stormrage.log").

xaionaro xaionaro, (Updated )

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

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

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

ys="y"
ss=0
for fl in `find $1`
do
echo -n "Do you want archive file $fl?(y/n)"
read ck
if [ "$ck"=="$ys" ]; then
tar -cf $fl.tar $fl
ls -la $fl
ls -la $fl.tar
os=`ls -la $fl | gawk '{ print $5 }'`
ts=`ls -la $fl.tar | gawk '{ print $5 }'`
let "ds=ts-os"
let "ss=ss+ds"
echo "ss $ss ds  $ds"
fi

done

Архивирует рекурсивно все файлы и расчитывает разницу между архивом и оригиналом.

AliceGoth AliceGoth, (Updated )

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

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

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

while :
do
declare -a fls;
c=0;
z=0
for ff in `find $1`
do
for tf in `du $ff | gawk '{ print $1 }'`
do
fl=`echo $tf | gawk '{ print $1 }'`
if [ "$tf" -eq "$z" ]; then
echo tf $tf
echo ff $ff
fls[$c]=$ff;
rm $ff
fi
done
done
echo ${fls[*]}
sleep 1m;
done

Удаляет пустые файлы

AliceGoth AliceGoth, (Updated )

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

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
#!/bin/bash
c1=`cat ~/c1.txt`
let c1++
echo $c1
echo $c1 > ~/c1.txt
date >> ~/fd.txt
exit 0

Счётчик запуска считает количество и дату записывет в файл через crontab, я им пользуюсь сам.

AliceGoth AliceGoth, (Updated )

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

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

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

function mdf()
{
cd $1
echo -n "\$1 "$1
echo
for a in "1 2 3 4 5"
do
  mkdir $1$a
  echo -n "1a "$1$a
  echo
while let "$2<=5"
do
  c=$2
  let c++
  mdf "$a" $c 
done
while let "$2>=5"
do
ca=$2
while let "ca>0"
do
  cd ..
  let ca--
done
mdf "$a" $ca
done
done
}

mdf ./ 0

Мдф

AliceGoth AliceGoth, (Updated )

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

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

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

edd=$PWD
a=`echo {0..10}/{0..10}`
b=`echo {0..10}/{0..10}/{0..10}`
mkdir {0..10}
for ma in `echo {0..10}`
do
  echo $ma
  echo $PWD
  cp $0 $ma/$0
done
for md in $a
do
  mkdir $md
  echo $md
  echo $PWD
  cp $0 $md/$0
done
for mdb in $b
do
  mkdir $mdb
  echo $mdb
  echo $PWD
  cp $0 $mdb/$0
done

Директории и циклы на bash

AliceGoth AliceGoth, (Updated )

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