У меня есть сценарий Python, в котором я использую команду Linux file
, чтобы классифицировать его как таковой в другом сценарии. К сожалению, это интерпретируется как C++ source, ASCII text
. В этом случае начало сценария выглядит следующим образом:
#!/bin/python3
import os
import sys
import stat
import re
settings = {}
template_file = None
output_file = None
template_filename = None
output_filename = None
Однако, если я помещаю назначения None
в блок if True
, file
правильно определяет это как a /bin/python3 script, ASCII text executable
:
#!/bin/python3
import os
import sys
import stat
import re
settings = {}
if True:
template_file = None
output_file = None
template_filename = None
output_filename = None
Вот мой вывод терминала:
$ cat python_as_cpp.py
#!/bin/python3
import os
import sys
import stat
import re
settings = {}
template_file = None
output_file = None
template_filename = None
output_filename = None
$ file python_as_cpp.py
python_as_cpp.py: C++ source, ASCII text
$ cat python_as_python.py
#!/bin/python3
import os
import sys
import stat
import re
settings = {}
if True:
template_file = None
output_file = None
template_filename = None
output_filename = None
$ file python_as_python.py
python_as_python.py: a /bin/python3 script, ASCII text executable
$ file -v
file-5.11
magic file from /etc/magic:/usr/share/misc/magic
Что может привести к тому, что первый образец кода будет обнаружен как C ++?