LINUX.ORG.RU

Ответ на: комментарий от mtk

Аргументы $@, $#, $0, $1, .. локальны для функции.

Вот где собака зарыта. Спасибо.

roman77 ★★★★★
() автор топика

$1 в функции не срабатывает. ЧЯДНТ?

$1 это первый параметр функции. Например func "УМВР"

emulek
()

Потому что функция - подпрограмма и ей свои параметры скармливаются. Ты ничего не скормил - естественно, и отображать нечего.

MiniRoboDancer ★☆
()
Ответ на: комментарий от emulek

В данный момент приоритетнее книга Немет Э., Снайдер Г., Хейн Т., Уэйли Б. - Unix и Linux. Руководство системного администратора - 2012

Ман баша буду читать, когда начну приводить скрипт в божеский вид:

ВНИМАНИЕ, УЖАСНЫЙ КОД:

#!/bin/sh
echo "#### Lxc container's backup script, v0.1 ####"

#Функция бэкапа
backup () {
        lxcname="${1%?}"
        date=`date "+%Y.%m.%d"`
        path=/home/roman/Soft/backup/lxc/$lxcname/
        lxc-info -n $lxcname
        echo "Preparation for backup $lxcname..."
        lxc-stop -n $lxcname
        mkdir -p $path 2> /dev/null
        tar cvpzf $path$date.tgz $lxcname
        echo "#### Starting $lxcname container...####"
        lxc-start -n $lxcname -d
        }

test -d  $1 || exit 0
        backup $1

roman77 ★★★★★
() автор топика
Ответ на: комментарий от roman77

1. а ошибки будут? Всё равно?

2. переменные надо заключать в кавычки

test -d  "$1" || exit 100 #TODO тут лучше сделать каталог, если его нет
backup "$1"
и выше тоже кавычки нужны.

emulek
()
Ответ на: комментарий от emulek

Ошибки будут, если сделать шаг влево/вправо.

Про кавычки спс, запомню.

wtf?

Скрипт лежит в одной директории, где лежат сами контейнеры.

Получается sh 123.sh romanam/

Имя контейнера дописывается автокомплитом, и / в конце попадет в переменную.

lxc-info -n romanam/ выдаст:

lxc-info -n romanam/
lxc-info: Error opening /run/lock/lxc//var/lib/lxc/romanam/
Name:           romanam/
State:          STOPPED

А коли убрать последний символ, и подставить новую переменную, то все сработает как надо:

lxc-info -n romanam
Name:           romanam
State:          RUNNING
PID:            30822
IP:             192.168.1.11
IP:             fd37:b7bd:46db:0:2ff:fbff:fe88:94af
CPU use:        1.34 seconds
BlkIO use:      26.28 MiB

Да, скрипт ужасен, но я его быстро слепил на коленке, в дальнейшем приведу в человеческий вид, с проверками и шлю... прочим.

roman77 ★★★★★
() автор топика
Последнее исправление: roman77 (всего исправлений: 4)
Ответ на: комментарий от emulek

Спасибо, принял на вооружение.

roman77 ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Не совсем понял, что именно ты имел ввиду.

roman77 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.