Есептік-графикалық жұмыс №1


Переменные, связанные с параметрами



бет5/8
Дата17.11.2023
өлшемі485,76 Kb.
#191646
1   2   3   4   5   6   7   8
Байланысты:
Линукс РГР-1

Переменные, связанные с параметрами
Когда мы запускаем сценарий, несколько переменных автоматически создаются. Вот некоторые из них:

  • $0 — содержит имя скрипта.

  • $1 –$9 — содержат параметры, переданные скрипту: $1 — первый аргумент, $2 — второй и так далее.

  • $# — содержит количество параметров, переданных скрипту.

  • $* — содержит все параметры, переданные скрипту.

Существуют и другие переменные, но для начала этих должно быть достаточно.
Разберемся на примере: 
1. user@bash: cat morevariables.sh
2. #!/bin/bash
3. # Демонстрация использования переменных
4. # karpaff 22/1/2022
5.
6. echo Меня зовут $0 и мне передали $# параметра(ов)
7. echo Вот они: $*
8. echo А второй параметр вот такой: $2
9. user@bash: 
10. user@bash: ./morevariables.sh bob fred sally
11. Меня зовут morevariables.sh и мне передали 3 параметра(ов)
12. Вот они: bob fred sally
13. А второй параметр вот такой: fred
14. user@bash: 
Переменная, содержащая вывод команды
Вывод команды тоже мождно сохранить в переменную — для этого используется ` (обратный апостроф).
Примечание. Обратите внимание, что это именно обратный апостроф, а не одинарная кавычка. Обычно обратный апостроф находится на клавиатуре на букве ё — слева от клавиши 1.
Разберемся на примере: 
1. user@bash: cat backticks.sh
2. #!/bin/bash
3. # Используем обратный апостроф
4. # karpaff 22/1/2022
5. 
6. lines=`cat $1 | wc -l`
7. echo Количество строчек в файле $1 равно $lines
8. user@bash:
9. user@bash: ./backticks.sh testfile.txt
10. Количество строчек в файле testfile.txt равно 12
11. user@bash
Создаем резервные копии с помощью скрипта
Теперь давайте используем всё, что мы изучили, в сценарий, который действительно делает что-то полезное. Допустим, вы храните все свои проекты в отдельных каталогах в директории под названием Projects, которая лежит в домашнем каталоге. Вам нужно регулярно делать резервные копии этих проектов и хранить их в датированных папках в каталоге под названием Projectbackups — она тоже в домашнем каталоге.
1. user@bash: cat projectbackup.sh
2. #!/bin/bash
3. # Создает резервную копию проекта
4. # karpaff 22/1/2022
5. 
6. date=`date +%F`
7. mkdir ~/projectbackups/$1_$date
8. cp -R ~/projects/$1 ~/projectbackups/$1_$date
9. echo Резервное копирование папки $1 завершено
10. user@bash: 
11. user@bash: ./projectbackup.sh ocelot
12. Резервное копирование папки ocelot завершено
13. user@bash:
Вы можете заметите, что в приведенном выше скрипте мы использовали относительные пути. Это делает сценарий более универсальным. Если кто-то из ваших коллег захочет использовать его, можно будет просто дать ему копию скрипта, и он будет работать так же хорошо без изменений.
Вы всегда должны думать о том, как сделать скрипты гибкими и универсальными, чтобы их легко могли использовать другие пользователи или чтобы их можно было адаптированы к аналогичным ситуациям. Чем более «многоразовый» у вас скрипт — тем лучше.


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет