Примеры скриптов

Задача: Есть файл формата кол-во альбомов TAB исполнитель. Нужно вывести первые N исполнителей. Первый аргумент имя файла, второй (необязательный) N. По умолчанию 10.  

 filename=${1:?'Нужно определить имя файла в первом аргументе!'}

maxcount=${2:-10}

sort -nr $filename | head -n $maxcount 

 Задача: Обертка для команды ls, которая выводит информацию в человекочитаемом виде. 

 if [ ! -e "$1" ]; then

 echo "Файл $1 не существует"

 exit 1

fi

if [ -d "$1" ]; then

 echo -n "$1 директория, в которой "

 if [ ! -x "$1" ]; then

 echo -n "нельзя "

 fi

 echo "проводить поиск."

elif [ -f "$1" ]; then

 echo "$1 обычный файл."

else

 echo "$1 специальный файл."

fi

if [ -O "$1" ]; then

 echo 'Вы владелец этого файла'

else

 echo 'Вы не являетесь владельцем этого файла.'

fi

if [ -r "$1" ]; then

 echo 'У вас есть право чтения этого файла.'

fi

if [ -w "$1" ]; then

 echo 'У вас есть право записи этого файла.'

fi

if [ -x "$1" -a ! -d "$1" ]; then

 echo 'У вас есть право исполнения этого файла.'

fi

 

 Задача:  На входе скрипта два параметра: текстовый идентификатор и адрес сайта. Если не хватает параметров - ошибка и выход. Пропинговать адрес, сохранить данные в файл в виде Идентификатор, адрес, результат пинг (Да/Нет), дата и время. 

 #!/bin/bash

PINGRESULT='ping_result.csv'

ident=${1:?'Нужно определить идентификатор хоста в первом аргументе!'}

myhost=${2:?'Нужно определить адрес хоста во втором аргументе!'}

if [ ! -e "$PINGRESULT" ]; then

 touch $PINGRESULT

fi

if [ -d "$PINGRESULT" ]; then

 echo "$PINGRESULT это директория. Удалите ее или измените имя файла."

 exit 1

fi

declare -i res=$(ping $myhost -c 1 | grep transmitted | awk '{print $4}')

if [ $res -eq "1" ]; then

 isaval="Доступен"

else

 isaval="Не доступен"

fi

echo ${ident},${myhost},${isaval},$(date '+%Y-%m-%d %H:%M:%S') > $PINGRESULT 

 Задача:  Отправить сообщение пользователю telegram 

 #!/bin/bash

#sudo apt update && sudo apt install -y jq

#usage ./tgsender "My message"

BOT_TOKEN="..."

# 📢 ID канала или ID user

CHAT_ID="..."

MESSAGE=${1:?"Необходимо определить сообщение в первом аргументе"}

# Запрос в Telegram API

res=$(curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \

 -d chat_id="${CHAT_ID}" \

 -d text="${MESSAGE}" \

 -d parse_mode="Markdown"\

 | jq -r '.ok')

if [ "${res}" = "true" ]; then

 echo "Ok"

else

 echo "Error"

fi 

 

 

 

 

  