LINUX.ORG.RU

zsh: не работает declare

 ,


0

2

Наткнулся на такой вот скрипт, нобычный ls. Может пригодится, когда имеешь дело со странными именами файлов. Так вот, если исользовать эту функцию, то после её применения можно манипулировать с именами файлов не напрямую, а с помощью переменных. Эта функция выведет _пронумерованный_ список всех файлов в текущем (или в заданном) каталоге и присвоит их имена переменным LS1, LS2, ...

lsn() {
    while read num name
    do
        echo "$num $name"
        declare "LS$num=$name"
    done <<< `ls -A1 "$@" | cat -n`
}

Но она этого не делает... Выводить-то список — выводит, только вот переменные не создаёт.

zsh умеет array, потому можно пользовать LS[$num]. (так не будет трэша в переменных).

Тебе зачем declare?

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

LS[$num]

Но, ЕМНИП, в zsh, в отличие от bash оно начинается с единицы.

r3lgar ★★★★★
()

Буду краток. ls -i

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