прочитать построчно файл и вывести в STDOUT

прочитать построчно файл и вывести в STDOUT

#!/bin/bash
while read LINE
do
  echo $LINE
done < $FILE

kill_ppp скрипт

чтобы убивать интерфейсы ppp

#!/bin/bash
 
log=/var/log/kill_ppp
 
case "$1" in
  --help)
    echo "Usage: kill_ppp OPTIONS"
    echo "OPTIONS:"
    echo "-if: ppp interface"
    echo "-ip: ip address"
    ;;
  -if)
    /bin/kill `cat /var/run/$2.pid`
    ;;
  -ip)
    array=(`/sbin/route -n|grep "$2 "| grep ppp| awk {'print $8'}`)
    for i in "${array[@]}"
       do
         echo "$i"
         /bin/kill `cat /var/run/$i.pid`
         echo "`date "+%b %d %H:%M:%S"` $i $2 reset" >> $log
       done
    ;;
  *)
    echo "error: not specify OPTIONS"

операторы сравнения в bash

операторы сравнения в bash
-lt (<)
-gt (>)
-le (<=)
-ge (>=)
-eq (==)
-ne (!=)

BASH конспект

скрипт запускающий программу

скрипт запускает программу если она не запущена, а если запущена то делает её окно активным

PROG=$1
#!/bin/bash
  if [ "`pgrep -u $USER $PROG`" != "" ]; then
    WID=`xdotool search --class "${PROG}" | tail -n 1`
    #xdotool windowfocus $WID
    wmctrl -a $PROG
    wmctrl -i -a $WID
  else
	`$PROG`
  fi
<code>

Шпаргалка по bash

[ -a FILE ] Правда елси FILE существует.
[ -b FILE ] Правда елси FILE существует и это специальный блоковый файл.
[ -c FILE ] Правда елси FILE существует и это специальный знаковый файл.
[ -d FILE ] Правда елси FILE существует и это директория.
[ -e FILE ] Правда елси FILE существует.
[ -f FILE ] Правда елси FILE существует и это регулярный файл.
[ -g FILE ] Правда елси FILE существует и установлен SGID бит.
[ -h FILE ] Правда елси FILE существует и это символический ссылка.
[ -k FILE ] Правда елси FILE существует и второй промежуточный бит округления установлен.

Перебрать список файлов в каталоге

переберет в текущем каталоге

#!/bin/bash 
for i in *
do
  echo $i
done

так же вместо * можно указать *.jpg и прочее

Скрипт переименовывает файлы с любым расширением добавляет в их имя нужное число

#!/bin/bash 
 
src_dir=/home/images
dst_dir=/home/new_images
count=100
step=1
ras=jpg
 
if [ ! -d $dst_dir ]; then
  mkdir -p $dst_dir
fi
for i in $src_dir/*.$ras
do
  name=`echo $i | sed 's/^.*\///;s/\..*$//'`
  cp $i $dst_dir/$name$[$count+$step].$ras
  count=$[$count+$step]
done

Что делает именно этот скрипт:
берет все файлы с расширением $ras(jpg) из каталога $src_dir и копирует их в каталог $dst_dir, добавляя к имени каждого файла число, начиная с $count(100) и увеличивая это число у каждого последующего файла на число указаное в переменной $step(1)

скрипт определяющий какие AS-ки входят в as-set

#!/bin/bash
 
tmpfile=/tmp/as-set.tmp
asfile=/tmp/as-set
asset=$1
 
if [ "$asset" != "" ];then
 
  if [ -e $asfile ];then
    rm $asfile
  fi
  touch $asfile
  touch $tmpfile
 
  ar()
  {
    arr=(` whois $asset | grep members | awk '{print $2}'`)
    if [ "$arr" != "" ];then
      for i in "${arr[@]}"
        do
          if [ "`echo $i | grep AS-`" = "" ];then
            echo "$i" >> $tmpfile
          else
            asset=$i
            ar
          fi
        done
    else
      echo "AS-SET not exist"
    fi
  }
  ar
 
  while read LINE
  do

удалить файлы, старше 30 дней

find /var/www/file_exchange/uploads/ -type f -mtime +30 -delete

Найти файлы редактированный за последние сутки

find /var/www/abc_dev/ -type f -mtime -1 -print