bash справочник

Действия в зависимости от параметра переданного скрипту

case ${1} in
 dev-0-3-8) HOST_DEV=172.31.42.207
        USER=neklo
        update
        ;;
 dev-2) HOST_DEV=172.31.28.179
        USER=ubuntu
        update
        clear_cache
         ;;
 *)
        echo "no updates"
        exit 1
esac

Как проверить наличие файла

if [ -f $web/latest.tar.gz ]
then
        mv $web/latest.tar.gz $web/arh_$date_time.tar.gz
fi
# Работа с файлами
-e    Проверить существует ли файл или директория (-f, -d)
-f    Файл существует (!-f - не существует)
-d    Каталог существует (!-f - не существует)
-s    Файл существует и он не пустой
-r    Файл существует и доступен для чтения
-w    ... для записи
-x    ... для выполнения
-h    cимвольная ссылка
 
# Работа со строками
-z    Пустая строка
-n    Не Пустая строка
==    Равно
!=    Не равно
 
# Операции с числами
-eq   Равно
-ne   Не равно
-lt   Меньше
-le   Меньше или равно
-gt   Больше
-ge   Больше или равно

Отладка

set -n — читать все команды, но не выполнять их;
set -v — выводить все строки по мере их обработки интерпретатором;
set -x — выводить все команды и их аргументы по мере их выполнения.

Массив

Превращаем строку в массив и выводим каждый элемент:

pde="dev dev1 dev2 dev3 dev4 dev5 dev6 dev7 dev8 mobilenav-dev\t ambassador-dev newhp-dev\n flowio-dev"
pde=$(echo -e $pde | tr " " "\n")

for city in ${pde[@]}
do
    echo $city
done

break выход из цикла for, while или until
continue выполнение следующей итерации цикла for, while или until
echo вывод аргументов, разделенных пробелами, на стандартное устройство вывода
exit выход из оболочки
export отмечает аргументы как переменные для передачи в дочерние процессы в среде
hash запоминает полные имена путей команд, указанных в качестве аргументов, чтобы не искать их при следующем обращении
kill посылает сигнал завершения процессу
pwd выводит текущий рабочий каталог
read читает строку из ввода оболочки и использует ее для присвоения значений указанным переменным.\
return заставляет функцию оболочки выйти с указанным значением
shift перемещает позиционные параметры налево
test вычисляет условное выражение
times выводит имя пользователя и системное время, использованное оболочкой и ее потомками
trap указывает команды, которые должны выполняться при получении оболочкой сигнала
unset вызывает уничтожение переменных оболочки
wait ждет выхода из дочернего процесса и сообщает выходное состояние.

Зарезервированные переменные:

$DIRSTACK - содержимое вершины стека каталогов
$EDITOR - текстовый редактор по умолчанию
$EUID - Эффективный UID. Если вы использовали программу su для
выполнения команд от другого пользователя, то эта переменная содержит
UID этого пользователя, в то время как...
$UID - ...содержит реальный идентификатор, который устанавливается только при логине.
$FUNCNAME - имя текущей функции в скрипте.
$GROUPS - массив групп к которым принадлежит текущий пользователь
$HOME - домашний каталог пользователя
$HOSTNAME - ваш hostname
$HOSTTYPE - архитектура машины.
$LC_CTYPE - внутренняя переменная, котороя определяет кодировку символов
$OLDPWD - прежний рабочий каталог
$OSTYPE - тип ОС
$PATH - путь поиска программ
$PPID - идентификатор родительского процесса
$SECONDS - время работы скрипта(в сек.)
$# - общее количество параметров переданных скрипту
$* - все аргументы переданыне скрипту(выводятся в строку)
$@ - тоже самое, что и предыдущий, но параметры выводятся в столбик
$! - PID последнего запущенного в фоне процесса
$$ - PID самого скрипта

$? — результат выполнения предыдущей команды (exit code)

Bash

Related Articles

0 Comment

Leave a Comment

Ваш адрес email не будет опубликован.