linux命令eval的用法講解
1. eval command-line
其中command-line是在終端上鍵入的一條普通命令行。然而當(dāng)在它前面放上eval時,其結(jié)果是shell在執(zhí)行命令行之前掃描它兩次。如:
pipe="|"
eval ls $pipe wc -l
shell第1次掃描命令行時,它替換出pipe的值|,接著eval使它再次掃描命令行,這時shell把|作為管道符號了。
如果變量中包含任何需要shell直接在命令行中看到的字符(不是替換的結(jié)果),就可以使用eval。命令行結(jié)束符(; | &),I/o重定向符(< >)和引號就屬于對shell具有特殊意義的符號,必須直接出現(xiàn)在命令行中。
2. eval echo \$$# 取得最后一個參數(shù)
如:cat last
eval echo \$$#
./last one two three four
four
第一遍掃描后,shell把反斜杠去掉了。當(dāng)shell再次掃描該行時,它替換了$4的值,并執(zhí)行echo命令
3.以下示意如何用eval命令創(chuàng)建指向變量的“指針”:
x=100
ptrx=x
eval echo \$$ptrx 指向ptrx,用這里的方法可以理解b中的例子
100 打印100
eval $ptrx=50 將50存到ptrx指向的變量中。
echo $x
50 打印50
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信