shell eval用法

來源:互聯網
上載者:User

1. eval command-line

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

New Roman;">pipe="|"

New Roman;">eval ls $pipe wc -l

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

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

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

如:cat last

New Roman;">eval echo /$$#

New Roman;">./last one two three four

New Roman;">four

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

3.以下示意如何用eval命令建立指向變數的“指標”:

New Roman;">x=100

New Roman;">ptrx=x

New Roman;">eval echo /$$ptrx 指向ptrx,用這裡的方法可以理解b中的例子

New Roman;">100 列印100

New Roman;">eval $ptrx=50 將50存到New Roman;">ptrx指向的變數中。

New Roman;">echo $x

New Roman;">50 列印50

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.