The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Как передать пустое значение в массиве?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Как передать пустое значение в массиве?"  +/
Сообщение от universite email(ok) on 27-Авг-11, 17:46 
Вот скрипт:

#!/bin/sh

fs_list='/var'

for fs in "" $fs_list;  do
echo  zfs_transfer $fs zroot tank/backup/zroot
done

echo  zfs_transfer "" zroot tank/backup/zroot


Вывод:

zfs_transfer zroot tank/backup/zroot
zfs_transfer /var zroot tank/backup/zroot
zfs_transfer  zroot tank/backup/zroot

последняя строка - это то, что нужно.
Как в цикл for добавить пустое значение, что $1 функции был равен ""?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как передать пустое значение в массиве?"  +/
Сообщение от anonymous (??) on 27-Авг-11, 18:20 
>[оверквотинг удален]
>
> Вывод:
>
 
> zfs_transfer zroot tank/backup/zroot
> zfs_transfer /var zroot tank/backup/zroot
> zfs_transfer  zroot tank/backup/zroot
>

> последняя строка - это то, что нужно.
> Как в цикл for добавить пустое значение, что $1 функции был равен
> ""?

Не совсем понял, что Вы хотите. А то, как Вы сделали сейчас, чем не устраивает?
Или Вы хотите передавать аргумент циклу, вызывая скрипт из командного интрепретатора?
Ну можно сделать тогда типа:


fs_list[0]="${1}"
fs_list[1]="/var"
for fs in ${fs_list[@]}
do
echo zfs_transfer ${fs} zroot tank/backup/zroot
done

Если уж мы говорим про массивы.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Как передать пустое значение в массиве?"  +/
Сообщение от universite email(ok) on 27-Авг-11, 18:23 
>[оверквотинг удален]
> Ну можно сделать тогда типа:
>
 
> fs_list[0]="${1}"
> fs_list[1]="/var"
> for fs in ${fs_list[@]}
> do
> echo zfs_transfer ${fs} zroot tank/backup/zroot
> done
>

> Если уж мы говорим про массивы.

Мне надо значение "" или пробел засунуть в массив.
Массив это игнорирует и у меня элементов массива становится на один меньше.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Как передать пустое значение в массиве?"  +/
Сообщение от anonymous (??) on 27-Авг-11, 21:19 
>[оверквотинг удален]
>> fs_list[0]="${1}"
>> fs_list[1]="/var"
>> for fs in ${fs_list[@]}
>> do
>> echo zfs_transfer ${fs} zroot tank/backup/zroot
>> done
>>
>> Если уж мы говорим про массивы.
> Мне надо значение "" или пробел засунуть в массив.
> Массив это игнорирует и у меня элементов массива становится на один меньше.

У меня заработало так:


#!/bin/sh

fs_list[0]=' '
fs_list[1]="/var"

for fs in "${fs_list[@]}"
do
        echo "zfs_transfer ${fs} zroot tank/backup/zroot"
done


Обязательно экранировать имя массива двойными кавычками, иначе игнорирует. Дало вывод:

zfs_transfer   zroot tank/backup/zroot
zfs_transfer /var zroot tank/backup/zroot

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Как передать пустое значение в массиве?"  +/
Сообщение от universite email(ok) on 28-Авг-11, 15:21 
>[оверквотинг удален]
> #!/bin/sh
> fs_list[0]=' '
> fs_list[1]="/var"
> for fs in "${fs_list[@]}"
> do
>         echo "zfs_transfer ${fs} zroot
> tank/backup/zroot"
> done
>
> Обязательно экранировать имя массива двойными кавычками, иначе игнорирует. Дало вывод:

У мну есть еще большой список FS.
Сейчас, грубо говоря, надо поставить на первое место этого массива значение или "" или пробел

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру