linux命令eval的用法

1. eval command-lineshell

其中commandline是在終端上鍵入的一條普通命令行。然而當在它前面放上eval時,其結果是shell在執行命令行以前掃描它兩次。如:ide

pipe="|"spa

eval ls $pipe wc -l命令行

shell1次掃描命令行時,它替換出pipe的值|,接着eval使它再次掃描命令行,這時shell把|做爲管道符號了。指針

若是變量中包含任何須要shell直接在命令行中看到的字符(不是替換的結果),就能夠使用eval。命令行結束符(;  &),Io重定向符(< >)和引號就屬於對shell具備特殊意義的符號,必須直接出如今命令行中。orm

2. eval echo \$$# 取得最後一個參數three

如:cat lastip

eval echo \$$#it

./last one two three fourpip

four

第一遍掃描後,shell把反斜槓去掉了。當shell再次掃描該行時,它替換了$4的值,並執行echo命令

3.如下示意如何用eval命令建立指向變量的「指針」:

x=100

ptrx=x

eval echo \$$ptrx 指向ptrx,用這裏的方法能夠理解b中的例子

100 打印100

eval $ptrx=50 50存到ptrx指向的變量中。

echo $x

50 打印50

相關文章
相關標籤/搜索