mirror of
https://github.com/xonsh/xonsh.git
synced 2025-03-04 16:34:47 +01:00
Advanced String Literals
This commit is contained in:
parent
580b675f1a
commit
02be19096e
2 changed files with 59 additions and 2 deletions
|
@ -902,8 +902,42 @@ to be evaluated in Python mode using the ``@()`` syntax:
|
||||||
>>> echo @("my home is $HOME")
|
>>> echo @("my home is $HOME")
|
||||||
my home is $HOME
|
my home is $HOME
|
||||||
|
|
||||||
You can also disable environment variable expansion completely by setting
|
|
||||||
``$EXPAND_ENV_VARS`` to ``False``.
|
.. note::
|
||||||
|
|
||||||
|
You can also disable environment variable expansion completely by setting
|
||||||
|
``$EXPAND_ENV_VARS`` to ``False``.
|
||||||
|
|
||||||
|
Advanced String Literals
|
||||||
|
========================
|
||||||
|
|
||||||
|
For fine control of envvar substitutions, brace substitutions and backslash escapes
|
||||||
|
there are extended list of literals:
|
||||||
|
|
||||||
|
- ``"foo"`` - regular string: backslash escapes.
|
||||||
|
- ``r"foo"`` - raw string: unmodified.
|
||||||
|
- ``f"foo"`` - formatted string: brace substitutions, backslash escapes.
|
||||||
|
- ``fr"foo"`` - raw formatted string: brace substitutions.
|
||||||
|
- ``p"foo"`` - path string: backslash escapes, envvar substitutions, returns Path.
|
||||||
|
- ``pr"foo"`` - raw Path string: envvar substitutions, returns Path.
|
||||||
|
- ``pf"foo"`` - formatted Path string: backslash escapes, brace substitutions, envvar substitutions, returns Path.
|
||||||
|
|
||||||
|
To complete understanding let's set environment variable ``$EVAR`` to ``1`` and local variable ``var`` to ``2``
|
||||||
|
and make a table that shows how literal changes the string in Python and subprocess mode:
|
||||||
|
|
||||||
|
.. table::
|
||||||
|
|
||||||
|
======================== ========================== ======================= =====================
|
||||||
|
String literal As python object print(<String literal>) echo <String literal>
|
||||||
|
======================== ========================== ======================= =====================
|
||||||
|
``"/$EVAR/\'{var}\'"`` ``"/$EVAR/'{var}'"`` ``/$EVAR/'{var}'`` ``/1/'{var}'``
|
||||||
|
``f"/$EVAR/\'{var}\'"`` ``"/$EVAR/'2'"`` ``/$EVAR/'2'`` ``/1/'2'``
|
||||||
|
``r"/$EVAR/\'{var}\'"`` ``"/$EVAR/\\'{var}\\'"`` ``/$EVAR/\'{var}\'`` ``/$EVAR/\'{var}\'``
|
||||||
|
``fr"/$EVAR/\'{var}\'"`` ``"/$EVAR/\\'2\\'"`` ``/$EVAR/\'2\'`` ``/$EVAR/\'2\'``
|
||||||
|
``p"/$EVAR/\'{var}\'"`` ``Path("/1/'{var}'")`` ``/1/'{var}'`` ``/1/'{var}'``
|
||||||
|
``pr"/$EVAR/\'{var}\'"`` ``Path("/1/\\'{var}\\'")`` ``/1/\'{var}\'`` ``/1/\'{var}\'``
|
||||||
|
``pf"/$EVAR/\'{var}\'"`` ``Path("/1/'2'")`` ``/1/'2'`` ``/1/'2'``
|
||||||
|
======================== ========================== ======================= =====================
|
||||||
|
|
||||||
Filename Globbing with ``*``
|
Filename Globbing with ``*``
|
||||||
===============================
|
===============================
|
||||||
|
|
23
news/tutorial_literal.rst
Normal file
23
news/tutorial_literal.rst
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
**Added:**
|
||||||
|
|
||||||
|
* Added "Advanced String Literals" to the "Tutorial".
|
||||||
|
|
||||||
|
**Changed:**
|
||||||
|
|
||||||
|
* <news item>
|
||||||
|
|
||||||
|
**Deprecated:**
|
||||||
|
|
||||||
|
* <news item>
|
||||||
|
|
||||||
|
**Removed:**
|
||||||
|
|
||||||
|
* <news item>
|
||||||
|
|
||||||
|
**Fixed:**
|
||||||
|
|
||||||
|
* <news item>
|
||||||
|
|
||||||
|
**Security:**
|
||||||
|
|
||||||
|
* <news item>
|
Loading…
Add table
Reference in a new issue