Нет. Это так просто. Конечный автомат (который представляет собой структуру данных, лежащую в основе регулярного выражения) не имеет памяти, кроме состояния, в котором он находится, и если у вас есть произвольно глубокое вложение, вам нужен произвольно большой автомат, который сталкивается с понятием конечный автомат.
Вы можете сопоставлять вложенные / парные элементы с фиксированной глубиной, где глубина ограничена только вашей памятью, потому что автомат становится очень большим. На практике, однако, вы должны использовать push-down automaton, т. Е. Синтаксический анализатор для контекстно-свободной грамматики, например LL (сверху вниз) или LR (снизу вверх). Вы должны учитывать худшее поведение во время выполнения: O (n ^ 3) по сравнению с O (n), с n = длина (ввод).
Существует множество генераторов синтаксического анализатора, например ANTLR для Java. Найти существующую грамматику для Java (или C) также не сложно. Для получения дополнительной информации: Теория автоматов в Википедии
Вы можете добавить shebang в первую строку скрипта:
#!/usr/bin/env python
Это сообщит вашей текущей оболочке, какая команда должна кормить сценарий.
Предполагая, что это находится в системе unix, вы можете добавить «shebang» в верхней части файла следующим образом: #!/usr/bin/env python
И затем установить исполняемый флаг следующим образом: chmod +x SQLsap
В unix вы используете строку shebang в начале вашего скрипта:
#!/usr/bin/env python
делают исполняемый файл:
chmod +x arbitraryname
и помещают его в каталог на ваш PATH (может быть символической ссылкой):
cd ~/bin/
ln -s ~/some/path/to/myscript/arbitraryname
В Windows файлы, такие как * .py, по умолчанию были открыты с python.exe. (Если нет, вы можете установить вручную.) Таким образом, вы можете напрямую запускать * .py-файлы в консоли.
Обратите внимание:
В окнах текст нового кода строки «\r \n ", но в unix это"\n ". Если ваш скрипт python является форматом Windows, тогда выполнение в unix будет сообщать об ошибке «Нет такого файла или каталога». Чтобы устранить эту проблему, просто замените все «\r\n» на «\n» в unix будет нормально.
В Windows или DOS вы можете приблизиться, поставив свой код на Python в такой .BAT-файл.
rem = ''' this line interpreted by BAT and PYTHON
@REM BAT-ONLY code begins now inside PYTHON comment
@echo off
python "%~dpnx0" %*
goto :eof
@REM CMD-ONLY code ends
'''
import sys
print sys.path
К сожалению, я не могу избавиться от сообщения первой строки на выходе , но вы всегда можете изменить текст после '' ', чтобы быть чем-то вроде имени приложения, и люди не заметили бы.
В идеале вы не ставили бы много кода Python в .BAT-файл, но импортирует файл .py и затем запускает его метод .__main__
.
Вы хотите shebang. #!/path/to/python
. Поместите это в первую строку вашего скрипта python. #!
на самом деле является магическим числом, которое сообщает операционной системе интерпретировать файл как скрипт для названной программы. Вы можете поставить /usr/bin/python
или, чтобы быть более портативным, /usr/bin/env python
, который вызывает программу /usr/bin/env
, и сообщает ему, что вы хотите установить интерпретатор Python системы.
Вам также нужно будет поместить свой скрипт на вашем пути, если вы не набрали текст ./SQLsap args
.
Другой способ сделать это - упаковать ваш скрипт python.
Тогда все, что вам нужно сделать, это запустить $ pip install package-name
, и просто запустить $ package-name
из любой директории выполнит ваш скрипт python.
Я бы рекомендовал этот метод, поскольку он позволяет вам чтобы быстро обмениваться / устанавливать / использовать / удалять ваш скрипт python.
Я написал простой скрипт QuickPackage , который может мгновенно создать и загрузить пакет python для вашего удивительного скрипта, просто введя путь вашего скрипта python.
Пример:
$ pip install quickpackage
Использование:
Использование Просто запустите quickpackage и введите путь к вашему скрипту python.
Пример:
❯ quickpackage
Enter name: quickpackage
Enter version: 1.1
Enter description: Instantly create and upload python package for your script
Enter github url: https://github.com/yask123/quick-package
enter author: Yask Srivastava
Enter email: yask123@gmail.com
Path of python script file: run.py
running register
....
running upload
Submitting dist/quickpackage-1.1.tar.gz to https://pypi.python.org/pypi
Server response (200): OK
Теперь просто запустите свой скрипт, запустив $ quickpackage
(В этом случае)
chmod +x SQLsap
на ОС POSIX.) – Mike DeSimone 3 August 2010 в 21:11#!/usr/bin/env python
и исполняемыми правами, терпит неудачу? Из командной строки мне все еще нужно поставитьpython
в начале командной строки ... – Thomas Matthew 30 September 2015 в 02:21