eval in Shell

來源:互聯網
上載者:User

標籤:

  文法:eval cmdLine
  eval會對後面的cmdLine進行兩遍掃描,如果第一遍掃描後,cmdLine是個普通命令,則執行此命令;

  如果cmdLine中含有變數的間接引用,則保證間接引用的語義。

  舉例如下:

  func 11 22 33 44

  如果要輸出最後一個參數44,可以使用如下命令:

  echo $4

  但是如果我們不知道有幾個參數的時候,要輸出最後一個參數,大家可能會想到使用$#來輸出最後一個參數,

  如果使用命令:

  echo "\$$#"

  則得到的結果是 $4,而不是我們想要的44。這裡涉及到一個變數間接引用的問題,我們的本意是輸出 $4,預設

情況下,命令後忽略變數間接引用的情況。

  這時候,就可以使用eval命令。

  eval echo "\$$#"

  得到的結果為44.

 

Reference:

shell中eval的使用問題 : http://doudouclever.blog.163.com/blog/static/175112310201252111104169/ 

eval in Shell

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.