Почему мой базовый скрипт unix не делает того, что я пытаюсь сделать? (Как написать abc/1 abc/2 abc/3)

rmdir не удалит не -пустой каталог, поэтому вы можете сделать:

find. -type d \! -name '.*' -depth -exec rmdir -v --ignore-fail-on-non-empty {} \;

(где --ignore-fail-on-non-emptyпросто сообщения об ошибках...)

3
10.01.2021, 21:21
3 ответа

Вы можете быть проще:

for i in 1 2 3; do echo "abc/$i" ; done

ИЛИ

for i in $(seq 1 3); echo "abc/$i"

Выход:

abc/1
abc/2
abc/3
5
18.03.2021, 22:37

Еще один способ сделать что-то подобное — использовать фигурные скобки.:

echo abc/{1..3}

Но, естественно, поскольку вы запросили новые строки, вам нужно сделать это следующим образом:

abc_strings=( abc/{1..3} )
printf "%s\n" "${abc_strings[@]}"
1
18.03.2021, 22:37

Только что попробовал это в онлайн Zsh:

for i in `seq 1 3` 
do
echo "abc/$i\n"
done

Получил следующее:

abc/1

abc/2

abc/3
0
18.03.2021, 22:37

Теги

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