---
name: "confget"
section: "1"
platform: "linux"
package: "confget"
version: "5.1.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/confget"
---

# confget(1)

read a variable from a configuration file

## NAME

**confget** – read a variable from a configuration file

## SYNOPSIS

**confget** \[**-cOSx**\] \[**-N** \| **-n**\] \[**-f** *filename*\] \[**-m** *pattern*\] \[**-P** *postfix*\] \[**-p** *prefix*\] \[**-s** *section*\] \[**-t** *type*\] *varname...*

**confget** \[**-OSx**\] \[**-N** \| **-n**\] \[**-f** *filename*\] \[**-m** *pattern*\] \[**-P** *postfix*\] \[**-p** *prefix*\] \[**-s** *section*\] \[**-t** *type*\] **-L** *pattern...*

**confget** \[**-OSx**\] \[**-N** \| **-n**\] \[**-f** *filename*\] \[**-m** *pattern*\] \[**-P** *postfix*\] \[**-p** *prefix*\] \[**-s** *section*\] \[**-t** *type*\] **-l**

**confget** \[**-f** *filename*\] **-q** sections \[**-t** *type*\]

**confget** \[**-hTV**\]

## DESCRIPTION

The **confget** utility examines a INI-style configuration file and retrieves the value of the specified variables from the specified section. Its intended use is to let shell scripts use the same INI-style configuration files as other programs, to avoid duplication of data.

The **confget** utility may retrieve the values of one or more variables, list all the variables in a specified section, list only those whose names or values match a specified pattern (shell glob or regular expression), or check if a variable is present in the file at all. It has a “shell-quoting” output mode that quotes the variable values in a way suitable for passing them directly to a Bourne-style shell.

Options:

- **-c**

  Check-only mode; exit with a code of 0 if any of the variables are present in the configuration file, and 1 if there are none.

- **-f** *filename*

  Specify the configuration file to read from, or “-” (a single dash) for standard input.

- **-h**

  Display program usage information and exit.

- **-L**

  Variable list mode; display the names and values of all variables in the specified section with names matching one or more specified patterns.

- **-l**

  List mode; display the names and values of all variables in the specified section.

- **-m** *pattern*

  Only display variables with if their values match the specified pattern.

- **-N**

  Always display the variable name along with the value.

- **-n**

  Never display the variable name, only the value.

- **-O**

  Allow variables in the specified section to override variables in the unnamed section at the start of the file. This is the only case when **confget** even considers variables in more than one section.

- **-P** *postfix*

  Display this string after the variable name as a postfix.

- **-p** *prefix*

  Display this string before the variable name as a prefix.

- **-q** *query*

  Query for a specific type of information. For the present, the only supported value for the *query* argument is “sections”, which lists the names of the sections defined in the configuration file.

- **-S**

  Quote the variable values so that the “var=value” lines may be passed directly to the Bourne shell.

- **-s** *section*

  Specify the configuration section to read. If this option is specified, **confget** will only consider variables defined in the specified section; see the **-O** option for the only exception.

  If this option is not specified, **confget** will use the first section found in the configuration file. However, if the configuration file contains variable definitions before a section header, **confget** will only examine them instead.

  If the **-s** option is specified with an empty string as the section name, **confget** will *only* examine variables defined before any section header( a “real” unnamed default section); this is incompatible with the **-O** option.

- **-T**

  List the available configuration file types that may be selected by the **-t** option.

- **-t** *type*

  Specify the configuration file type.

- **-V**

  Display program version information and exit.

- **-x**

  Treat the patterns as regular expressions instead of shell glob patterns.

## ENVIRONMENT

Not taken into consideration.

## EXIT STATUS

If the **-c** option is specified, the **confget** utility will exit with a status of 0 if any of the specified variables exist in the config file and 1 if none of them are present.

In normal operation, no matter whether any variables were found in the configuration file or not, the **confget** utility exits with a status of 0 upon normal completion. If any errors should occur while accessing or parsing the configuration file, the **confget** utility will display a diagnostic message on the standard error stream and exit with a status of 1.

## EXAMPLES

Retrieve the variable machine\_id from the system section of a configuration file:

```
confget -f h.conf -s system machine_id
```

Retrieve the variable hostname from the db section, but only if it ends in “.ringlet.net”:

```
confget -f h.conf -s db -m '*.ringlet.net' hostname
```

Display the names and values of all variables declared before any section has been defined:

```
confget -f h.conf -s '' -l
```

Display the names and values of all variables in the system section with names beginning with “mach” or ending in “name”, appending a “cfg\_” at the start of each variable name:

```
confget -f h.conf -s system -p 'cfg_' -L 'mach*' '*name'
```

Display the names and values of all variables in the system section:

```
confget -f h.conf -s system -l
```

Safely read the contents of the db section:

```
eval `confget -f h.conf -s db -p db_ -S -l`
```

## SEE ALSO

For another way to parse INI files, see the Config::IniFiles(3) Perl module.

## STANDARDS

No standards documentation was harmed in the process of creating **confget**.

## BUGS

Please report any bugs in **confget** to the author.

## AUTHOR

The **confget** utility was conceived and written by Peter Pentchev ⟨roam@ringlet.net⟩ in 2008.
