티스토리 뷰

이게 뭔소리인가 하면

쉘 상에서 python -c "print('123')" 해서 파이썬 코드를 사용할 수 있다.

파일화 되어있는 sample.py 파일을 이렇게 커맨드라인 한줄로 변환하는 것을 하고자 하는것이다.

예를 들어 sample.py 이 있고 이 안에 


for i in [1,2,3,4,5]:

   print "Number: " +str(i)


라는 내용이 기록되어 있다고 하자.

이 상태에서

echo 'python -c "`echo '"'`openssl base64 < sample.py | tr -d '\n'`' | base64 --decode"'`"'

를 입력한다

그러면

python -c "`echo 'Zm9yIGkgaW4gWzEsMiwzLDQsNV06CiAgIHByaW50ICJOdW1iZXI6ICIgK3N0cihpKQo=' | base64 --decode`"

라고 출력될것이다.

이 출력된걸 복사해서 쉘에 다시 붙여넣어보자

Number: 1
Number: 2
Number: 3
Number: 4
Number: 5

이렇게 실행되는 것을 볼 수 있다.
즉 sample.py 의 본체를 base64로 인코딩하여 커맨드라인상에 포함시킨셈이다.

이 방법으로 파일없이 손쉽게 파이썬 코드를 포터블하게 사용할 수 있다.


댓글
댓글쓰기 폼
공지사항
Total
24,367
Today
33
Yesterday
34
링크
«   2018/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
글 보관함