What is the “eval” Command in Bash?

In Bash, the “eval” command is utilized to execute the arguments as a shell command. It evaluates its arguments as an expression and the result is displayed in a command line. This can be useful in situations where the arguments need to be constructed dynamically, such as in scripts that use variables to specify commands.

This article will illustrate the “eval” command with the practical implementation. 

What is the “eval” Command in Bash?

The “eval” command does not have any options or flags. It simply evaluates its arguments as a shell command.

Syntax:

$ eval [arguments]

Where “arguments” can be any combination of strings, variables, or expressions users want to evaluate as a shell command.

Here are a few examples of using the “eval” command in bash:

Example 1: Execute the Linux Commands

The “eval” command takes the argument as a Linux command and displays it in the terminal. For instance, the “echo Hello World” command is taken for evaluation:

$  eval "echo Hello World"

The output shows the message “Hello World” in the terminal after evaluating the Linux command.

Example 2: Evaluate a Shell Variable as a Command

An example is carried out for evaluating the variable as a command and displaying it in the terminal. For instance, “x” holds the value “ls” command and the “eval” command takes the value of “x” and evaluates it as a shell command: 

$ x=ls
$ eval $x

The output shows the content of the home directory through the “eval” command.

Example 3: Evaluate the Arithmetic Expression

To evaluate the arithmetic expression, the “eval” command is utilized by adding two variables and displaying their output in the terminal. 

In our case, the values “10” and “20” are assigned to variables “x” and “y”. After that, the “eval” command is utilized by assigning their sum to the “result” variable: 

$ x=10
$ y=20
$ eval result=\$[$x + $y]
$ echo $result

The output displays the value of the “result” variable via the “eval” command. 

Example 4: Evaluate a String as a Command

Users can utilize the “eval” command to display the string as a command. For instance, assign the string “Hello World” to the “x” variable and evaluate via the “eval” command:

x="echo Hello World"
eval $x

The output prints the message “Hello World” after evaluation. 

Example 5: Evaluate the Number of Lines of a File 

To evaluate the number of lines of a file, users can utilize the “wc -l” command by specifying the file name. For instance, evaluate the “file.txt” file by assigning value to the “line” variable and display in the terminal:

$ line="wc -l file.txt"
$ eval $line

The output shows the number of lines “4” in the output.

Conclusion

The “eval” command evaluates its arguments as a shell command and displays them in the terminal. Using this command, users can evaluate “Linux commands”, “shell variables”, “arithmetic expressions”, and “string” as a command and display them in the terminal. This article has briefly explained the “eval” command with practical implementation in Linux.