Shell 中的 eval
功能:重新运算求出参数的内容。eval可读取一连串的参数,然后再依参数本身的特性来执行。
参数:参数不限数目,彼此之间用分号分开。
示例:
eval $(free -h | awk 'NR==2{printf("total=%s;used=%s"),$2,$3}')
[test@S-681 log]$ echo $total
15G
示例中,使用free命令跟awk命令显示内存信息的第二行并且截取第2列、第3列将其打印出来,结果如下:
total=15G;used=13G
然后使用eval读取该字符串,并将其转换为表达式,最终结果相当于在shell下执行下面的命令
total=15G
used=13G