새소식

Programming/python

[python3] 터미널에서 한 줄로 if else 사용하기

  • -

가끔 터미널에서 작업을 할 때 bash 로 작성하기에는 짜증나고 python 으로 하면 금방 처리되는 경우가 있습니다.

 

파이썬 명령이 길어지는 경우 파일로 작성해서 터미널에서 실행하면 가장 간단한데, 가끔 파일 자체를 작성할 수 없는 경우가 있습니다.

 

이런 경우 터미널에서 python -c '파이썬 명령들' 로 실행을 할 수 있는데 단순 한줄짜리 명령들은 세미콜론 ; 을 사용해서 여러 명령을 입력할 수 있었는데 if else 등은 할 줄 몰라서 못했었습니다.

 

그냥 대충 써보면 개행이 잘못되었다든지 문법이 틀렸다든지의 오류가 발생했었습니다.

인터넷을 뒤져 찾아낸 방법은 python -c $"파이썬 명령1\n파이썬 명령2\n..." 형태로 쓰면 정상적으로 실행되는 것을 확인할 수 있었습니다.

 

예를 들면

if True:
  print('yes')
else:
  print('no')

와 같은 명령은

python3 -c $'if True:\n print(\'yes\')\nelse:\n print(\'no\')'

와 같이 실행할 수 있습니다.

 

참고로 "" 은 파이썬 명령 안에서는 써도 상관없는데 전체 명령 감싸는 것을 작은 따옴표로 하는 $'' 대신 큰 따옴표 $"" 로 쓰는 것은 안됩니다.

해보시면 아시겠지만 많은 오류가 발생합니다. shell 에서 '' 로 둘러쌓인 문장 안의 특수문자는 해석을 하지 않는데 "" 로 둘러쌓인 특수문자는 자꾸 해석이 되어 문제가 생깁니다.

꼭 전체 명령 감싸는 것은 $'' 로만 해야 합니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.