我不明白为什么这不起作用:
TEXT="blah" echo $TEXT #echoes nothing
我认为这可能是因为 echo 是内置的,所以我尝试了这个:
TEXT="blah" `which echo` $TEXT #still nothing
我错过了什么?
答案1
shell 扩展变量前它在运行分配之前就运行命令。
参见
text=blah ; echo $text
或者
text=blah eval 'echo $text'
第一个方法有效,因为赋值是作为单独的命令运行的。第二个方法有效,因为$text
是单引号,这可以防止在 shell 处理命令时对其进行扩展;当eval
稍后运行时,该变量已经赋值。