Разбор строк
Пути
Вывод только пути из полного имени файла:
dirname /path/to/file
выдаст:
/path/to
например включить файл из той же директории, откуда вызван скрипт:
. $(dirname $0)/file.cfg
и наоборот, для вывода только имени файла:
basename /path/to/file
выдаст:
file
Разбиение по колонкам, например:
mount | column -t
Вывести IP интерфейса
HOST_IP=`ifconfig eth0 | head -2 | tail -1 | awk '{print $2}' | cut -d : -f 2`
echo $HOST_IP
Переменные
Не использовать в имени знак подчеркивания!
Поместить содержимое файла
foo=`cat bar.txt`
Вывести с форматированием - указать в кавычках
echo "$foo"
В условных операторах с переменными
a="foo"
if [ "$a" = "qqq" ]; then
....
необходимо использовать пробелы!
Размер свободного места на диске
При выводе длинных названий дисковых устройств можно использовать ключ -P
df -P
Посмотреть % свободного места
df -P | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }'
http://www.cyberciti.biz/tips/shell-script-to-watch-the-disk-space.html
Вместо программы telnet
в скриптах удобно использоватьп рограмму nc ("netcat")
Команды можно посылать на стандартный ввод команде nc, а на STDOUT получать ответы, например:
printf 'HELO example.org\nQUIT' | nc mxs.mail.ru 25
Лекция: NETCAT и CRYPTCAT
Команду printf
можно использовать вместо echo для форматирования посылаемых строк, например посыла нескольких строк
printf 'строка1\nстрока2'
послать CR/LF:
printf 'QUIT\x0D\x0A'
Получение IP адреса интерфейса
ip=`ifconfig $nic | grep inet | cut -d : -f 2 | cut -d ' ' -f 1`
или
ip=`ifconfig $nic | awk '/inet addr/ { gsub(".*:", "", $2) ; print $2 }'`
Удаление коментариев и пустых строк из файла
sed -i.bac "/#.*/d;/^$/d" test.txt
создает файл .bac
Поиск и замена текста в файле
sed -i'.bac' -e 's/что/на_что/g' /filename
sed — Википедия
Цикл for
#/bin/bash
TEST="1 2 3"
for qqq in $TEST; do
echo $qqq
done
Полезные статьи
Advanced Bash-Scripting Guide
[ 2 ]
[ 3 ]
Написание несложных Bourne-скриптов
Коллекция полезных скриптов
Перенаправление стандартных потоков данных в Linux
bash - командный интерпретатор