У світі сценаріїв bash ви можете зустріти фразу set – $VARIABLE. Але що це означає?
У своєму найпростішому наборі – $VARIABLE використовується для поділу значення змінної bash на окремі слова, використовуючи внутрішній роздільник полів (IFS) як роздільник. Наприклад, якщо VARIABLE має значення a b c, тоді запущений набір – $VARIABLE встановить позиційні параметри на a, b і c.
чому інтерфейс маркера в java
Це може здатися не особливо корисним на перший погляд, але це може бути потужним інструментом, якщо його використовувати в правильному контексті. Одним із поширених випадків використання є обробка аргументів командного рядка, переданих у сценарій bash. Коли ви запускаєте сценарій bash, позиційні параметри (наприклад, , тощо) представляють аргументи, що передаються сценарію. Використовуючи set – $VARIABLE, ви можете легко розділити один аргумент на кілька слів, що полегшить їх обробку.
Ось приклад того, як це можна використовувати:
#!/bin/bash # Set the value of VARIABLE to the first command-line argument VARIABLE='' # Split the value of VARIABLE into separate words set - $VARIABLE # Loop over the words for word in '$@'; do echo '$word' done>
Якщо ви збережете цей сценарій як example.sh і запустіть його так:
./example.sh 'a b c'>
Вихід:
a b c>
Переглядайте елементи списку, що зберігаються у змінній
Ще один поширений випадок використання набору – $VARIABLE – це цикл по елементам списку, що зберігається у змінній. Наприклад:
java випадкова математика випадкова
# Set the value of VARIABLE to 'a b c' VARIABLE='a b c' # Split the value of VARIABLE into separate words set - $VARIABLE # Loop over the words for word in '$@'; do echo '$word' done>
Вихід:
a b c>
Варто зазначити, що набір $VARIABLE працює, лише якщо значення VARIABLE є одним рядком. Якщо VARIABLE є масивом, вам потрібно використовувати інший підхід. Одним із варіантів є використання синтаксису printf ‘%s ’ ${VARIABLE[@]}, який розширює масив на серію окремих слів, кожне з яких розділене символом нового рядка.
Ось приклад того, як це можна використовувати:
#!/bin/bash # Set the value of VARIABLE to an array containing 'a', 'b', and 'c' VARIABLE=('a' 'b' 'c') # Expand the array into a series of separate words set - $(printf '%s
' '${VARIABLE[@]}') # Loop over the words for word in '$@'; do echo '$word' done>
Вихід:
a b c>
Висновок
Підсумовуючи, set – $VARIABLE є корисною функцією bash, яка дозволяє вам розділити значення змінної на окремі слова, використовуючи IFS як роздільник. Його можна використовувати для обробки аргументів командного рядка або для циклічного перегляду елементів списку, що зберігається в змінній. Хоча він працює лише з окремими рядками, існують альтернативні підходи, які можна використовувати з масивами. Розуміння того, як працює set – $VARIABLE і коли його використовувати, може бути цінним доповненням до вашого інструментарію сценаріїв bash.