Ненормальный цикл на «баше»
Сегодня в чате бывших коллег на фоне вопросов по одной из вакансий случилось обсуждение на тему что делать, если на собеседовании спросили как написать на «баше» цикл от одного до десяти, а ты не помнишь синтаксис for и команду seq тоже не знаешь.
Предположим ты честно говоришь, что не помнишь, а тебя просят как-то выкрутиться теми знаниями, которые есть.
Мой вариант:
for i in $(echo 1 2 3); do echo $i; done
Не дописал одно слово — синтаксис for не помнишь.
=)
$ yes | head -10 | cat -n | cut -f 1
1
2
3
4
5
6
7
8
9
10
Годно ))
Баш же?
echo {1..10} | tr ' ' '\n'
Баш, да, но слишком практично ) Душа просит безумств ))
Тащемта понятие «цикл» подразумевает, что надо выполнить в теле цикла что-то полезное, а не просто вывести числа от 1 до 10.
Но если цель просто заморочиться...
pushd /tmp > /dev/null ;d=`mktemp -d -p .`;cd $d;touch {1..10};find . -type f -name '*' -printf "%f\n"|sort -g ;rm -f *;cd ..;rmdir $d;popd>/dev/null
Впрочем, если в find добавить -exec то можно и запустить чего нибудь 10 раз.
Понятие «цикл» подразумевает цикл, ничего более. Например, «вечный цикл» может не выполнять ничего полезного.
P. S. Код годный ))