1

${}が 4 番目と 6 番目のプロンプトで何をしているのか理解できません。また、これに関するドキュメントも見つかりません。この本Python for Unix and Linux System Administratorには、6 番目のプロンプトのような例があり、変数が先頭に追加されているだけで$なく、また、文字列を別の文字列に埋め込むために囲み{}ます. 完全な式を引用するとうまくいきますが、[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]では、 の代わりにタイプミス 、}それ以外の場合は、 を実行すると が に消費され、 につながり${test}、その後再び消費されると思います (シェルではそう思います)。{test}TEST TEST TEST$TEST TEST TEST$TEST

私がそう言う理由:

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値に展開します。一方、シェルは$FOOor ${FOO}(ドル AND ブラケット) をよく使用します。

IPython では、使用する場合、明示的な!ドルに倍のドルを使用する必要があります。$$ただし、ブラケットをエスケープする方法がわかりません。

于 2013-05-29T17:24:14.680 に答える