Частина друга цього міні-підручник програмування в Удар, де ми вчимося користуватися ciclos та інші інструменти, які допоможуть нам покращити наші функціональні можливості scripts. |
Якщо умовно
Функція If полягає у застосуванні фільтра та виконанні операції або завдання для кожного типу застосованого фільтра. Його структура така:
Якщо [умова]; потім команди elif [умова]; тоді ще команди; команди fi
Приклад показано у циклі For у відповідному розділі.
Цикли
1. У той час як: він буде виконувати всі команди, вказані між do і done, доки умова відповідає істині. Якщо ми хочемо передати йому оператори порівняння, вираз повинен бути в дужках.
в той час як CONDITION / COMMAND виконує команди
Приклад: таблиця множення числа
#! / bin / bash X = 1 echo "Введіть число і натисніть ENTER" читайте M # Цикл контролює, що X менше або дорівнює 10, тоді як [$ X –le 10] do # У R ми зберігаємо множення X на MR = $ [X * M] # Це множення друкується на луні екрану "$ M * $ X = $ R" # З дозволом ми збільшуємо значення X на 1 одиницю, нехай X = $ X + 1 виконано
2. Для: зберігає список елементів у змінній, яка буде використовуватися для виконання певних операцій з кожним циклом.
для VARIABLE в ELEMENTS виконуються команди, виконані
Приклад: програма, яка копіює файл з однієї папки в іншу, замінюючи старий файл.
# / bin / bash # Встановлюємо вихідні та кінцеві каталоги ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Ми позиціонуємо себе у вихідному cd $ ORIGIN # З усіх файлів ми хочемо лише той, який is # call FILE for FILE in * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f фільтрує нам звичайні файли, оскільки каталоги # нічого хорошого для нас не мають. –Не відфільтровує # файли «новіші», ніж ті, що знайдені в цільовій папці, якщо [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; потім echo "Копіювання $ FILE ..." # ми копіюємо файл за допомогою cp cp $ FILE $ ARCH-DESTINATION fi зроблено # Ми cd для виходу з вихідної папки cd
Інший приклад: сценарій, де користувач повинен відгадати випадкове число, сформоване комп’ютером.
# / bin / bash # Випадкове число генерується від 1 до 10, воно # зберігається у СЛУЧАЙНОМУ СЛУЧАЙНОМУ $ $ [$ РАНДОМ% 10 + 1], тоді як [1] do echo –n "Введіть число:" прочитайте NUM Порівняйте, якщо вибраний користувачем номер # дорівнює СЛУЧАЙНОМУ; не забудьте використовувати $ для обчислення #значень змінних, а не їх імен, якщо [“$ NUM –eq“ $ RANDOM ”]; потім луна "Ви правильно зрозуміли!" #break дозволяє закінчити цикл під час перерви # Якщо число менше РАНДОМ elif [“$ NUM –gt“ $ RANDOM ”]; тоді відлуння "Менше" "Якщо ні, то це більше, ніж РАНДОМ, інакше відлуння" ВІН більше "fi виконано
3. До: досить схожа за структурою на While, за винятком того, що код завжди виконується, коли оцінка умови є негативною, тобто програма продовжує виконувати "доти, доки не настане умова"
поки CONDITION / COMMAND не виконують команди
Приклад: надрукуйте числа 10-20 у порядку зменшення
#! / bin / bash CONT = 20 # Поки лічильник менше 10 (-lt, “нижчий # ніж”), код виконується до [$ CONT -lt 10]; do echo "COUNTER $ CONT" #A CONT віднімається одиницею, нехай CONT- = 1 виконано
4. Виберіть: цей останній цикл є особливим випадком, оскільки він, як правило, використовується для швидкого створення меню. Він працює подібно до циклу For.
оберіть ЗМІННИЙ у СПИСКУ виконаних команд
Приклад: надайте користувачеві можливість продовжити або закінчити сценарій.
#! / bin / bash #item - це змінна, яка відповідає вибраному # користувачем, Продовжити і Готово - доступні йому # варіанти, хоча можна додати інші опції # ще вибрати пункт у Продовжити Готово зробити # Якщо користувач вибере закінчуємо програму, потім з перервою виходимо з циклу. якщо [$ item = "Finish"]; потім перерва fi зроблено
Я думаю приблизно так: tar -cf - Каталог | (cd / other / directory; tar -xvf -)
Тоді це буде виглядати як / інший / каталог / Каталог
Таким чином я стиснув каталог, а ви розпакуєте його в іншому місці….
Привіт, чудово, я вивчаю цю тему, і все в порядку, тільки я не зміг створити програму, яка мені допомагає, щоб побачити, чи можете ви мені допомогти, будь ласка.
Мені потрібно зробити цикл, в якому він отримає як параметри список вихідного файлу, цей список приносить лише імена (без розширення), так що цикл робить наступне, шукайте вказане ім'я, отримане в каталозі (який є той, який ми будемо шукати), витягніть та скопіюйте файл (повне ім’я вже з розширенням) та абсолютний шлях та створіть його в іншому цільовому файлі.
Поки що я маю таке:
під час читання рядка
do
echo -e "$ line"
find / home / myuser / dof "$ line" -exec readlink -f {};
done <testlist.txt Поки що я прочитав файл, кожен його рядок, але я не можу змусити його шукати цей файл та витягти інформацію. Якщо ви можете мені допомогти, дякую. На ура
Щиро дякую за внесок 🙂
привіт ... сподіваюся, ти зможеш допомогти в наступній практиці ... Розпакуйте файл у tgz у вказаному каталозі, крім зазначення користувача та групи для всіх існуючих каталогів та файлів, а також призначення дозволів для файлів та каталогів
Примітка: файли, готові до читання та запису
дозвіл на виконання каталогів
ARCH-DESTINATION - це змінна, у якій ми хочемо зберегти шлях до цільового файлу, крім резервування. Потім до цієї змінної ми вказуємо змінну DESTINATION, яка вище містить шлях до папки Documents, і ми додаємо "змінну" FILE, яка містить ім'я файлу. Якби цей файл був, наприклад, list.doc, змінна ARCH-DESTINATION була б рівною /home/Usuario/Documentos/listado.doc
Це попередня стаття. Ви можете отримати до нього доступ за адресою http://usemoslinux.blogspot.com
Обійми! Павло.
Доброго ранку, товариш, просто дякую, твій блог дуже хороший, але я не можу отримати першу частину Програмування в Bash, де я отримую подяку, вітаю
Дві надзвичайні частини, щирі вітання.
Просто чудово.
Bien
Привіт, я роблю програму з CASE, що я хочу робити, і я не знаю як, наприклад:
echo Вибирає варіант:
нудьгувати
ехо 1. варіант 1
ехо 2. варіант 2
ехо 3. варіант 3
ехо 4. варіант 4
ехо 5. Вихід
прочитати var
справа "$ var" в
1)
echo "Ви вибрали варіант 1"
;;
2)
echo "Ви вибрали варіант 2"
;;
3)
викидати "….."
;;
4)
викидати "…."
;;
5)
викидати "…"
;;
*)
echo "неправильний варіант"
;;
що С
добре, що я не знаю, як це зробити, це те, що коли я вибираю варіант 4, який має вийти, запитаю, чи дійсно я хочу вийти, і даю мені 2 варіанти Y & N
а інший - коли ви вибираєте щось інше, ніж цифри 1..5, не голосуйте за мене зі сценарію ....
Не могли б ви допомогти мені, дякую.
Привіт, я почав писати сценарії 1 місяць тому, завдяки вашим публікаціям у сценаріях. Я зробив близько 15-20. Заздалегідь дуже дякую. Але зараз наш учитель дав нам роботу, на якій я застійний. Оскільки вчитель запитує:
передаючи каталог, скопіюйте додому всі файли, що знаходяться в цьому каталозі, за алфавітом і називаючи їх file1 file2 тощо ... і т.д. ...
Зараз я перебуваю в момент пошуку або знаходження, я хотів скористатися функцією пошуку, але при введенні йому коду помилки, як-от я пропустив його через dev null, дозволи відмовлені, тоді я помиляюся і розміщую місцезнаходження, яке я тут:
знайдіть $ 1 | grep "/ $ {1} \ $"
але звичайно з цим вони всі виходять ...
Щиро дякую, якщо прочитали.
Якщо ви можете мені допомогти, це було б великою послугою.
Я хотів би, щоб ви допомогли мені в цьому.
1.-Введіть на клавіатурі ціле число та двічі та втричі відображте це число на екрані. 2. - Складіть програму, яка вирішить, чи ділиться число, введене за допомогою клавіатури, на 3 чи ні.
3. - Складіть програму, щоб знайти суму: ???????? + ???????? + ???????? + ???????? + ⋯? ???????
4.- Складіть програму для знаходження суми 1 + 3 + 5 + 7 + 9 · · · + (2n + 1).
5. Створіть програму, яка 10 разів друкує слово Linux на екрані
6.-Створіть програму, яка друкує слово Linux на екрані стільки разів, що вказав користувач.
7.-Введіть суму в годинах і перетворіть їх у хвилини та секунди.
8.-Обчисліть площу трикутника
9.-Введіть число за допомогою клавіатури, тоді якщо ви введете 2, воно має бути у квадраті, 3 кубиками, 4 - до четвертого і так далі до 6.
10-Розрахуйте пенсію, яку повинен виплатити студент, потрібно ввести код спеціальності та дні затримки:
КОД
СПЕЦІАЛЬНІСТЬ
СУМА
ТРИВАЛІСТЬ НА ДЕНЬ
1
ОБРАБОТКИ
160
1
2
МЕДИЧНЕ СЕСТРО
150
1.5
3
СЕКРЕТАРІАТ
140
2
4
TURISMO
180
2.5
5
ОБЛІК
160
1
Ви повинні вказати спеціальність, яку вивчаєте, вартість пенсії, дефолт та загальну суму до сплати.
Привіт, хтось може мені допомогти?
Мені потрібно «Запитати три слова за допомогою клавіатури та відобразити їх в алфавітному порядку від А до Я»
Мовою Bash або sh для LINUX porfaborrrr