← 返回命令列表

Linux command

eval 命令

文件

涉及管道、覆盖或删除,执行前请先确认路径和参数。

常用示例

Execute dynamically

cmd="ls -la"; eval "$cmd"

Expand variables

var="PATH"; eval "echo \$$var"

Set a variable

key="myvar"; eval "$key=hello"; echo "$myvar"

Execute a command stored

cmd="ps aux | grep bash"; eval "$cmd"

Use eval with command substitution

eval "$(ssh-agent -s)"

说明

eval is a POSIX special shell builtin that concatenates its arguments separated by spaces, then reads and executes the resulting string as a shell command. This enables dynamic command construction and double expansion of variables. The command is useful when command strings are built programmatically or stored in variables. It allows variable indirection (accessing a variable whose name is in another variable). A common real-world use is initializing ssh-agent with `eval "$(ssh-agent -s)"`. If there are no arguments or only null arguments, eval returns exit status 0. Otherwise it returns the exit status of the executed command.

FAQ

What is the eval command used for?

eval is a POSIX special shell builtin that concatenates its arguments separated by spaces, then reads and executes the resulting string as a shell command. This enables dynamic command construction and double expansion of variables. The command is useful when command strings are built programmatically or stored in variables. It allows variable indirection (accessing a variable whose name is in another variable). A common real-world use is initializing ssh-agent with `eval "$(ssh-agent -s)"`. If there are no arguments or only null arguments, eval returns exit status 0. Otherwise it returns the exit status of the executed command.

How do I run a basic eval example?

Run `cmd="ls -la"; eval "$cmd"` in a terminal, then adjust file names, paths, flags, or remote targets for your system.

Where can I find more eval examples?

This page includes 5 examples for eval, plus related commands for nearby Linux tasks.