Shell 中eval的用法

2021-09-12 04:04:40 字數 769 閱讀 1697

eval command-line

其中command-line是在終端上鍵入的一條普通命令列。然而當在它前面放上eval時,其結果是shell在執行命令列之前掃瞄它兩次。如:

pipe="|"

eval ls $pipe wc -l

shell第1次掃瞄命令行時,它替換出pipe的值|,接著eval使它再次掃瞄命令列,這時shell把|作為管道符號了。

如果變數中包含任何需要shell直接在命令列中看到的字元(不是替換的結果),就可以使用eval。命令列結束符(; | &),i/o重定向符(< >)和引號就屬於對shell具有特殊意義的符號,必須直接出現在命令列中。

eval echo \$$#取得最後乙個引數

如: eval echo \$$#

./last one two three four

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

Shell中, eval的用法

eval是shell內建的命令。基本用法如下 eval arguments 主要功能是讀入arguments並執行之。arguments的退出碼 exit code 會被當做eval的退出碼。如果沒有arguments,則退出碼是0。在平時的使用中,我們一般會用到eval的2個特性。cat pars...

shell 中的 eval 應用

一 bash命令處理的12個步驟 1 將命令列分成由固定元字符集分隔的記號 space,tab,newline,記號型別包括單詞,關鍵字,i o重定向符和分號。2 檢測每個命令的第乙個記號,檢視是否為不帶引號或反斜線的關鍵字。如果是乙個開放的關鍵字,如if和其他控制結構起始字串,function,變...

python中eval的用法

eval 用於執行乙個字串的表示式,並返回表示式的值 eval expression,globals none,locals none 官方文件中的解釋是,將字串str當成有效的表示式來求值並返回計算結果。globals和locals引數是可選的,如果提供了globals引數,那麼它必須是dicti...