Ограничение области действия квалификаторов glob в zsh

Проблема в масштабе. переменная не имеет значения за пределами подоболочки, созданной каналом. Вместо этого:

while read line; do echo "read obtained: ${line}"; done < <(echo "a b c d e f g")

используйте цикл, как хотите. если вы хотите обработать текст с помощью одного из них, сделайте это. -С

3
14.11.2019, 20:47
1 ответ

Вам не нужен цикл. Достаточно промежуточной переменной. Используйте сигил расширения параметра^для распределения по массиву.

dirpath=(*(N-/))
print -rC1 -- $^dirpath/*(.NOL[1,2])

Или вы можете использовать анонимную функцию, чтобы избежать временной переменной (, которая становится $argv/ $@аргументами анонимной функции):

() {print -rC1 -- $^@/*(.NOL[1,2])} *(N-/)
4
27.01.2020, 21:17

Теги

Похожие вопросы