Със сигурност сте попаднали някои задачи, които трябва да правите многократно. Например, представете си, че имате директория, пълна с файлове и искате да промените името на всички тях, или че трябва да компресирате няколко файла или да ги декомпресирате, може би трябва да конвертирате от един формат в друг, периодични архиви, и т.н. Сценариите имат решения за всичко това.
Тези задачи, когато се прилагат към един файл в Bash, са добре. Проблемът е, когато трябва да го приложите на десетки от тях. Домашната работа може да бъде много досадна. С един обикновен цикъл или цикъл в Bash можете да се отървете от този проблем и да изпълните задача многократно, за да я автоматизирате и да не ви струва толкова много работа. Начинът да го направите е супер прост, но много нови потребители не го правят и в крайна сметка правят задачата ръчно или търсят графични програми, които я правят ...
За това, придържайте се към тази структура:
for x in objetivo; do comando; done
Por ejemploДа предположим, че искате да изтриете файлове с име name0, name1, name2, name3 и т.н., до номера name100. Преминаването един по един с rm би било доста досадно, вместо това можете да изпълните следната команда:
for n in 'seq 100'; do rm nombre$n; done
Или може би си представете, че имате директория с няколко компресирани .zip файла, които искате да извлечете. За да не се налага да ходите един по един, можете да използвате:
</pre> <pre>for n in *.zip; do unzip "$n"; done
Ви променете тези bash цикли тъй като предпочитате да използвате инструмента, от който се нуждаете във вашия случай. Например, още едно, сега си представете, че искате да разопаковате tarball:
</pre> <pre>for n in *.tar.xz; do tar -xf "$n"; done</pre> <pre>
Надявам се да съм помогнал да не губите толкова много време, изпълнявайки всички тези задачи една по една и че можете да приложите това, за да рационализирате ежедневната си работа. Както можете да видите, той няма загадка, той е супер прост ...