1

我不明白${}第四个和第六个提示符在做什么,我找不到任何有关此的文档,这本书Python for Unix and Linux System Administrator有一个类似于第六个提示符中的示例,其中变量不仅位于前面,$而且也包含{}在内以便将字符串嵌入另一个字符串中,如果我引用完整的表达式,它会起作用,但是在 [4 & 6] 中发生了什么?:

In [1]: test = 'TEST TEST TEST!!!'                                                                                          

In [2]: !echo test
test                                                                                                                         

In [3]: !echo $test                                                                                                         
TEST TEST TEST!!!                                                                                                            

In [4]: !echo ${test}   # Don't understand this one.                                                                                                
TEST TEST!!!  

In [5]: !echo {test}                                                                                                       
TEST TEST TEST!!!

In [6]: !echo ${test}TEST!!!   # Nor this one either.
TEST TEST!!!TEST!!!

In [7]: !echo '${test}TEST!!!'
$TEST TEST TEST!!!TEST!!!
4

1 回答 1

4

在 [4] 中,拼写错误,)而不是},否则我猜想当 dooing 时${test}{test}将花费到TEST TEST TEST,导致$TEST TEST TEST,然后$TEST再次花费(我想在 shell 中)。

我这么说是因为:

In [1]: test = 'PATH TEST TEST!!!'

In [2]: !echo "${test}"
/usr/local/bin:/usr/local/share/pyt.../.rvm/bin TEST TEST!!!

但是您必须小心,IPython 会自己进行变量扩展,$foo或者{foo}(没有美元符号)扩展为foo 的Python值。而壳牌经常使用$FOO${FOO}(美元和括号)。

在 IPython 中,使用!时必须使用双美元$$来表示明确的美元。不知道如何逃脱括号。

于 2013-05-29T17:24:14.680 回答