Использование переменных аргументов:
Переменная аргумента начинается с $ 0. Имя основного файла сценария хранится в $ 0, который получает значения аргументов из аргументов командной строки. Если в командной строке переданы два аргумента, значения аргументов будут последовательно получены в переменных $ 1 и $ 2.
Пример -1: отправка трех числовых значений в качестве аргументов
Создайте файл bash и добавьте следующий код. Сценарий получит три значения аргумента и сохранит их в $ 1, $ 2 и $ 3. Он подсчитает общее количество аргументов, напечатает значения аргументов с циклом и без цикла. Наконец, выведите сумму всех значений аргументов.
#! / bin / bash
# Подсчет общего количества аргументов
выбросил 'Общее количество аргументов: $ #'
# Чтение значений аргументов индивидуально
выбросил 'Значение первого аргумента: $ 1'
выбросил 'Значение второго аргумента: $ 2'
выбросил 'Значение третьего аргумента: $ 3'
# Чтение значений аргументов с помощью цикла
дляАргвалв '[электронная почта защищена]'
делать
выбросил -n '$ argval'
сделано
# Добавление значений аргументов
сумма= $((1 доллар+2 доллара+3 доллара США))
# распечатать результат
выбросил -А также ' пРезультат суммы =$ сумма'
Запустите файл bash с тремя числовыми значениями аргументов.
$трепатьcmdline1.shпятьдесят 35 год пятнадцать
Пример -2: использование имени файла в качестве аргумента
Создайте файл bash и добавьте следующий код для подсчета общего количества символов любого файла. Здесь имя файла будет передано как аргумент командной строки.
#! / bin / bashимя файлазнак равно1 доллар
totalcharзнак равно``Туалет -c $ filename``
выбросил 'Общее количество символов$ totalchar'
Запустите сценарий bash с именем файла в качестве значения одного аргумента и запустите другую команду, чтобы проверить общее количество символов в этом файле. Здесь в качестве значения аргумента используется файл employee.txt. Общее количество символов файла employee.txt - 204.
$трепатьcmdline2.sh employee.txt
$Туалет -cemployee.txt
Использование функции getopts:
Если вы хотите сохранить данные в базе данных или любом файле или создать отчет в определенном формате на основе значений аргументов командной строки, тогда Getopts функция - лучший вариант для выполнения задачи. Это встроенная функция Linux. Таким образом, вы можете легко использовать эту функцию в своем скрипте для чтения форматированных данных из командной строки.
Пример -1: чтение аргументов функцией getopts
Создайте файл bash и добавьте следующий сценарий, чтобы понять использование Getopts функция. Функция getopts используется с циклом while для чтения параметров аргументов командной строки и значений аргументов. Здесь используются 4 варианта: ‘I’, ‘n’, ‘m’ а также 'А также' . Оператор case используется для сопоставления конкретной опции и сохранения значения аргумента в переменной. Наконец, распечатайте значения переменной.
#! / bin / bashв то время как Getopts ':во мне:'злой;делать
кейс $ arg в
я) Я БЫзнак равно$ OPTARG;;
п) Имязнак равно$ OPTARG;;
м) Дата производствазнак равно$ OPTARG;;
А также) Годен дознак равно$ OPTARG;;
esac
сделано
выбросил -А также ' п$ ID $ Имя $ Manufacturing_date $ Expire_date п'
Запустите файл со следующими параметрами и значениями аргументов. Здесь p100 - это значение опции -i, 'Hot Cake' - значение опции -n, '01 -01-2018 '- значение опции -m, а '06 -01-2018' - значение - е вариант.
$трепатьcmdline3.sh-яp001-n 'Горячий пирог' -м '01 -01-2018 ' -А также '06 -01-2018 '
Когда вам нужно отправить простые значения в скрипте, лучше использовать переменные аргумента. Но если вы хотите отправлять данные в отформатированном виде, лучше использовать функцию getopts для получения значений аргументов. Для получения дополнительной информации смотрите видео !