Linux下的eval以及和 ,

2021-08-03 21:09:31 字數 546 閱讀 4862

假設cmd=」 echo 33」

eval $cmd 等價於 「echo 33 」

其實相當是先讓後邊的變數先執行,再執行其結果;

同時這些需要進行兩次掃瞄的變數有時候被稱為複雜變數。

同時在shell指令碼中還有等價的兩條命令「 ,$() 都是做命令替換的,和上面變數替換差不多;都是用來重組命令列的,先完成引號裡的命令列,然後將其結果替換出來,再重組成新的命令列。

$( )與``

在操作上,這兩者都是達到相應的效果,但是建議使用\$( ),理由如下:

``很容易與」搞混亂,尤其對初學者來說。

在多層次的復合替換中,``必須要額外的跳脫處理(反斜線),而$( )比較直觀。

例如:將cmd1執行結果作為cmd2引數,再將cmd2結果作為cmd3的引數

cmd3 $(cmd2 $(cmd1))

如果是用反引號,直接引用是不行的,還需要作跳脫處理

cmd3 `cmd2 \`cmd1\` `

最後,$( )的弊端是,並不是所有的類unix系統都支援這種方式,但反引號是肯定支援的。

Linux 和 的區別以及調研 eval命令

一.首先 和 1.相同點 都具有命令帶環的作用 2.不同點 a.中的 s或者並不能對 進行在轉義,意思就 是 還具有 其本身的意義 但是 中 s能對 進行轉義 b.中的 s或者能對 進行 轉義,意思就是經過轉義 具有其 本身的意義 但是 中的 s不能 對 進行轉義 總結起來就是 中要用 到兩個 才能...

linux下set和eval的使用小案例精彩解答

linux下set和eval的使用小案例解答 本博文主要是講解學生提出的如下一行命令指令碼定義的真正內涵 runlevel set runlevel eval echo 以下是老男孩培訓14期vip群內的對話解答記錄,內容已做過濾,有的以前反映過,說老男孩發的記錄時間對不上,其實老男孩只是以對話問答...

linux下set和eval的使用小案例精彩解答

set 和eval的用法比較特殊,後期課程慢慢的給大家滲透,現在是學習的剛剛開始啊。root oldboy set i am handsome oldboy.傳入三個引數 root oldboy root oldboy echo 現在有三個引數 3 root oldboy for i in do e...