Linux eval命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux eval命令相关的知识,希望对你有一定的参考价值。

[[email protected] ~]$ myfile="cat test"
如果我们e c h o该变量,我们将无法列出t e s t 文件中的内容。
[[email protected] ~]$ echo $myfile
cat test
让我们来试一下e v a l命令,记住e v a l命令将会对该变量进行两次扫瞄。
[[email protected] ~]$ eval $myfile
Hello World!!!
I am a chinese Boy!
从上面的结果可以看出,使用e v a l命令不但可以置换该变量,还能够执行相应的命令。第
一次扫描进行了变量置换,第二次扫描执行了该字符串中所包含的命令cat test和echo命令。

 

3命令还可以用来显示出传递给脚本的最后一个参数
[[email protected] ~]$ cat test1
#!/bin/bash
echo "Total of the arguments passed $#"
echo "The process Id is $$"
echo "Last argument os "$(eval echo \$$#)""
[[email protected] ~]$ ./test1 value bank test last
Total of the arguments passed 4
The process Id is 21545
Last argument os last
在上面的脚本中, e v a l命令首先把$ $ #解析为当前s h e l l的参数个数,然后在第二次扫描时
得出最后一个参数。
4给每个值一个变量名
可以给一个值一个变量名。下面我对此做些解释,假定有一个名为test2的文件:
[[email protected] ~]$ cat test2
CCTV 5
CHANGEL SPORTS
LIKE YES
你希望该文件中的第一列成为变量名,第二列成为该变量的值,这样就可以:
[[email protected] ~]$ cat test2
COMMANY TQ
LANGUE ENGLISH
LIKE YES
[[email protected] ~]$ cat test3
#!/bin/bash
while read NAME VALUE
do
eval "${NAME}=${VALUE}"
done <test2
echo "$COMMANY $LANGUE $LIKE"
[[email protected] ~]$ ./test3
TQ ENGLISH YES









































以上是关于Linux eval命令的主要内容,如果未能解决你的问题,请参考以下文章

linux命令eval的用法

Linux 命令(144)—— eval 命令(builtin)

Linux 命令(144)—— eval 命令(builtin)

php eval怎样执行系统命令?

如何在shell脚本中执行cd命令

shell解析命令行的过程以及eval命令