Это значение параметра, которое является обязательным или необязательным, а не сам параметр.
Обязательно означает, что вы должны передать значение после параметра
$program --lang en
, в то время как
$program --lang
- это ошибка.
Если это необязательно, значение может быть или не быть предоставлено.
Если ваш параметр вообще не ожидает значения, это вашответственность за выход с ошибкой.
Если вам нужно, чтобы параметр всегда присутствовал, вы также должны проверить, присутствует ли этот параметр после вызова getopt.