Очевидно, этот сценарий оболочки вызывает себя как сценарий Python:
#!/bin/sh
## repo default configuration
##
REPO_URL='git://android.git.kernel.org/tools/repo.git'
REPO_REV='stable'
magic='--calling-python-from-/bin/sh--'
"""exec" python -E "$0" "$@" """#$magic"
if __name__ == '__main__':
import sys
if sys.argv[-1] == '#%s' % magic:
del sys.argv[-1]
del magic
:
:
(Весь сценарий: https://android.googlesource.com/tools/ repo / + / v1.0 / repo )
Может ли кто-нибудь объяснить
цель такого вызова?
Почему бы не указать #! / Usr / bin / env python
в первой строке, чтобы он интерпретировался
как сценарий Python с самого начала?
цель добавления этого волшебного последнего аргумента командной строки, который впоследствии удаляется в начале кода Python?