我不明白${}
在第四和第六个提示中正在做什么,我找不到任何关于此的文档,书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!!!
答案 0 :(得分:4)
在[4]中,错字,)
而不是}
,否则我会猜测,当${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 值。其中Shell经常使用$FOO
或${FOO}
(美元与支架)。
在IPython中,当使用!
时,你必须使用双元$$
来显式运行。不知道怎么逃避Brackets。