Python에는 Python 명령문을 프로그램에 인수로 전달할 수 있는 옵션이 있습니다.
사용 예는 다음과 같습니다.
$ python -c "print(\"I'm running Python.\")"
I'm running Python.
Python 매뉴얼 페이지에서 우리는 다음을 읽었습니다.
전화했을 때-씨실행하는 명령 명령으로 제공되는 Python 문입니다. 여기의 명령에는 여러 개가 포함될 수 있습니다 여러 문은 개행으로 구분됩니다.
여러 줄을 전달하려고 시도했지만 실패했습니다.
$ python -c "print(0)\nprint(1)"
File "<string>", line 1
print(0)\nprint(1)
^
SyntaxError: unexpected character after line continuation character
나는 또한 성공하지 못한 채 이 문서를 시도했습니다. 이 작업을 어떻게 수행합니까?
답변1
이에 의존하는 대신 쉘에서 지원하는 here-doc를 사용하십시오 python
. 이렇게 하면 스크립트에서처럼 자유롭게 여러 수준의 따옴표 및 유형 코드 중첩이 필요합니다.
-
실행 후는 python
실행할 명령이 여기 문서에서 제공하는 표준 입력에서 나온다는 것을 의미합니다. 대부분의 유틸리티는 이를 구현합니다. 즉, -
명령 뒤에 오는 내용은 구문 분석이 필요한 표준 입력에서 입력이 나온다는 의미입니다.
python - <<'EOF'
print("I'm running Python.")
print("Are you now?")
EOF
\n
또한 쉘은 또는 와 같은 명령을 사용하지 않으면 이스케이프된 리터럴을 인식하지 못합니다. 문자열은 실행 파일로 전달되기 전에 기본 셸에서 처리됩니다. 리터럴에 사용할 수 있는 특별한 처리가 없기 때문에 쉘은 리터럴을 여러 줄로 확장하지 않습니다.printf
echo -e
".."
\n
-c
사용할 때 Enter터미널의 키를 누르고 다음 명령 세트를 계속 입력하여 암시적으로 줄바꿈을 생성 해야 합니다.
python -c "print(0)
> print(1)"
이를 계속 사용 python -c
하고 수행하는 또 다른 방법은 문자열을 정의하여 에서 수행하는 것입니다 ".."
. bash
/에서 수행하는 한 가지 방법은 다음을 zsh
사용하는 것입니다.ANSI-C 인용문그리고 할
python -c $'print(0)\nprint(1)'
즉, 쉘은 실행 파일에 전달하기 전에 및 기타 이스케이프 시퀀스를 확장합니다 $'..'
. \n
이제 python
통역사는 전달된 두 개의 개별 라인을 볼 수 있습니다.
잘 작성된 크로스 사이트 속임수도 있습니다.StackOverflow - 하나의 명령줄에서 여러 줄의 명령문을 실행하시겠습니까?이것을 설명하십시오.