shell eval命令
1. eval command-line
其中command-line是在終端上鍵入的一條普通命令行。然而當在它前面放上eval時,其結果是shell在執行命令行之前掃描它兩次。如:
pipe="|"
eval ls $pipe wc -l
shell第1次掃描命令行時,它替換出pipe的值|,接著eval使它再次掃描命令行,這時shell把|作為管道符號了。
如果變量中包含任何需要shell直接在命令行中看到的字符(不是替換的結果),就可以使用eval。命令行結束符(;?|?&),I/o重定向符(< >)和引號就屬于對shell具有特殊意義的符號,必須直接出現在命令行中。
2. eval echo \$$#?取得最后一個參數
如:cat last
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
轉載于:https://www.cnblogs.com/jianzhaojing/p/11451792.html
總結
以上是生活随笔為你收集整理的shell eval命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嘟嘟嘟
- 下一篇: linux kill命令