Pro*_*sch 4 shell bash command-substitution variable-substitution
% PATH="MYPATH"
% VAR="PATH"
% echo $(eval echo \$$VAR)
MYPATH
% echo `eval echo \$$VAR`
5707VAR
^^
This is the process number.
Run Code Online (Sandbox Code Playgroud)
我认为这两个完全相同,但显然存在一些差异,例如逃避行为。有什么区别?
我将转载BASH参考手册的文字,因为我不会更好地表达它:
Bash 通过执行命令并用命令的标准输出替换命令替换来执行扩展,并删除任何尾随的换行符。嵌入的换行符不会被删除,但在分词过程中可能会被删除。命令替换 $(cat file) 可以替换为等效但速度更快的 $(< file)。
当使用旧式反引号替换形式时,反斜杠保留其字面含义,除非后跟“$”、“`”或“\”。前面没有反斜杠的第一个反引号终止命令替换。使用 $(command) 形式时,括号之间的所有字符组成命令;没有被特殊对待。
归档时间: |
|
查看次数: |
247 次 |
最近记录: |