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:ls non-existent-file
status=$?
- 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.