파이썬코드를 포터블하게 사용하기
쉘 상에서 다음과 같이 해서 한줄로 파이썬 코드를 사용할 수 있다.
cHl0aG9uMyAtYyAicHJpbnQoJzEyMycpIg==
python3 -c "print('123')"
파일화 되어있는 파이썬 코드를 위와 같은식으로 커맨드라인 한줄로 변환하는 것을 하고자 하는것이다.
한줄로 하여 코드조각처럼 들고다닐 수 있는것이다.
예를 들어 sample.py 이 있고 이 안에 다음의 내용이 기록되있다 하자
Zm9yIGkgaW4gWzEsMiwzLDQsNV06DQogICBwcmludCgiTnVtYmVyOiAiICtzdHIoaSkp
for i in [1,2,3,4,5]:
print("Number: " +str(i))
쉘에서 다음과 같이 입력해본다
d2hpY2ggYmFzZTY0OyB3aGljaCBvcGVuc3NsOw==
which base64; which openssl;
했을때 각각 두개의 경로가 잘 나오면 다음을 진행할 수 있다
만약 안나온다면 안나오는것에 대해 설치해주고 진행하자
ZWNobyAncHl0aG9uMyAtYyAiYGVjaG8gJyInYG9wZW5zc2wgYmFzZTY0IDwgc2FtcGxlLnB5IHwgdHIgLWQgJ1xuJ2AnIHwgYmFzZTY0IC0tZGVjb2RlIidgIic=
echo 'python3 -c "`echo '"'`openssl base64 < sample.py | tr -d '\n'`' | base64 --decode"'`"'
실행하고나면 다음의 코드가 나올것이다.
이제 다음의 코드를 쉘에서 실행하면 위 sample.py 파이썬파일을 실행한 셈이 된다.
물론 sample.py파일은 더 이상 없어도 상관없다
cHl0aG9uMyAtYyAiYGVjaG8gJ1ptOXlJR2tnYVc0Z1d6RXNNaXd6TERRc05WMDZDaUFnSUNBZ0lDQndjbWx1ZENnaVRuVnRZbVZ5T2lBaUlDdHpkSElvYVNrcENnbz0nIHwgYmFzZTY0IC0tZGVjb2RlYCI=
python3 -c "`echo 'Zm9yIGkgaW4gWzEsMiwzLDQsNV06CiAgICAgICBwcmludCgiTnVtYmVyOiAiICtzdHIoaSkpCgo=' | base64 --decode`"
이 복사해서 쉘에 다시 붙여넣어보자
TnVtYmVyOiAxDQpOdW1iZXI6IDINCk51bWJlcjogMw0KTnVtYmVyOiA0DQpOdW1iZXI6IDU=
Number: 1
Number: 2
Number: 3
Number: 4
Number: 5
이 방법으로 파일없이 손쉽게 파이썬 코드를 포터블하게 사용할 수 있다.