在posix中shell环境下eval是用来取出字符串当参数选项来用的,效果和"`"是一样的,这在平时写大量引用比较复杂的脚本时十分有用。简单的用bash来说,平时使用的指令都是被分割成token来处理,那么如果是通过管道(|)或者是大量引用的时候,往往因为冗余的指令导致参数展开错误,那么就需要使用到eval,这里举一个简单的例子:

#!/bin/bash

args="ls -al"
echo "args is :$args"
eval $args