In Bash, you can store the standard error output of a command to a variable by using the
`2>&1` operator and the
`$()` command substitution syntax. Here
`2>` redirects the error message to
&1`, that represent to standard output. In the case of bash shell works as the standard output device.
- For example, to store the standard error output of the
`ls`command to a variable named errors, you can use the following command:
errors=$(ls non-existent-file 2>&1)
Alternatively, you can use the
`$?`special parameter to store the exit status of a command to a variable. The exit status is a numeric value that indicates whether the command was successful or not. A value of
`0`indicates success, while a non-zero value indicates an error.
- For example, to store the exit status of the
`ls`command to a variable named status, you can use the following command:
- You can then use the
`$status`variable to check the exit status of the
`ls`command and take appropriate action based on the result. For example:123456#!/usr/bin/env bash# Pur your commands hereif [ $status -ne 0 ]; thenecho "Last command failed with an error."fi
Keep in mind that the
`$()` command substitution syntax allows you to execute a command and substitute its output in place. The
`2>` operator redirects the standard error output of the command to the
`&1` stream, which is the standard output stream. This allows you to capture both the standard output and standard error output of the command in a single variable.