Python vs Bash-어떤 종류의 작업에서 각각 성능면에서 다른 작업을 능가합니까?


97

분명히 Python은 더 사용자 친화적이며 Google에서 빠른 검색은 Python이 바이트 컴파일되기 때문에 일반적으로 더 빠르다는 많은 결과를 보여줍니다. 사전 기반 작업에서 2000 % 이상의 개선을 볼 수 있다고 주장하는 사실 도 발견 했습니다 .

이 문제에 대한 귀하의 경험은 무엇입니까? 어떤 종류의 작업에서 각자가 확실한 승자입니까?


6
이것은 실제로 설문 조사가 아니며 미리 정의 된 옵션이 없습니다. 어떤 도구가 어떤 작업을 가장 잘 수행하는지에 대한 통찰력이 필요합니다.
Doppelganger

답변:


94

일반적인 메인 프레임 흐름 ...

Input Disk/Tape/User (runtime) --> Job Control Language (JCL) --> Output Disk/Tape/Screen/Printer
                                   |                          ^
                                   v                          |
                                   `--> COBOL Program --------' 

일반적인 Linux 흐름 ...

Input Disk/SSD/User (runtime) --> sh/bash/ksh/zsh/... ----------> Output Disk/SSD/Screen/Printer
                                   |                          ^
                                   v                          |
                                   `--> Python script --------'
                                   |                          ^
                                   v                          |
                                   `--> awk script -----------'
                                   |                          ^
                                   v                          |
                                   `--> sed script -----------'
                                   |                          ^
                                   v                          |
                                   `--> C/C++ program --------'
                                   |                          ^
                                   v                          |
                                   `--- Java program ---------'
                                   |                          ^
                                   v                          |
                                   :                          :

쉘은 Linux의 접착제입니다.

sh / ksh / bash / ... 와 같은 Linux 쉘 은 이전 메인 프레임 작업 제어 언어와 매우 유사한 입력 / 출력 / 흐름 제어 지정 기능을 제공합니다. O / S가 지원하는 모든 언어로 작성된 다른 실행 프로세스와 데이터 및 제어를 효율적으로 전달하도록 최적화 된 상태에서 자체적 으로 Turing 완전한 언어 입니다.

대부분의 Linux 응용 프로그램은 대부분의 프로그램이 작성된 언어에 관계없이 쉘 스크립트에 의존하며 Bash 가 가장 일반적입니다. 데스크탑에서 아이콘을 클릭하면 일반적으로 짧은 Bash 스크립트 가 실행됩니다 . 이 스크립트는 직접 또는 간접적으로 필요한 모든 파일이 어디에 있는지 알고 변수와 명령 줄 매개 변수를 설정하여 마지막으로 프로그램을 호출합니다. 이것은 쉘의 가장 간단한 사용입니다.

그러나 우리가 알고있는 Linux는 시스템을 시작하고, 이벤트에 응답하고, 실행 우선 순위를 제어하고, 프로그램을 컴파일, 구성 및 실행하는 수천 개의 쉘 스크립트가 없으면 Linux가 될 수 없습니다. 이들 중 다수는 상당히 크고 복잡합니다.

셸은 컴파일 타임이 아닌 런타임에 함께 연결되는 미리 빌드 된 구성 요소를 사용할 수있는 인프라를 제공합니다. 이러한 구성 요소는 단독으로 또는 재 컴파일없이 다른 조합으로 사용할 수있는 독립형 프로그램입니다. 이들을 호출하는 구문은 Bash 내장 명령 의 구문과 구별 할 수 없으며 실제로 시스템에 독립 실행 형 실행 파일이 있고 종종 추가 옵션이있는 수많은 내장 명령이 있습니다.

성능면에서 PythonBash 사이에는 언어 차원의 차이가 없습니다 . 그것은 전적으로 각각이 어떻게 코딩되고 어떤 외부 도구가 호출되는지에 달려 있습니다.

모든 같은 잘 알려진 도구 나오지 AWK, 그렙, BC 주, DC, TR, 등은 먼지 중 하나의 언어로 그 작업을하고 떠날 것이다. BashPython 보다 Bash 를 사용하는 도구와 같은 도구에서 데이터를 다시 호출하고 전달하는 것이 더 쉽고 효율적이기 때문에 그래픽 사용자 인터페이스가없는 모든 경우에 선호됩니다 .

공연

Bash 쉘 스크립트가 호출 하는 프로그램 과 전체 처리량 및 / 또는 응답 성이 동등한 Python 보다 좋거나 나쁠 지 여부에 따라 주어진 하위 작업에 대한 적합성에 따라 다릅니다 . 문제를 복잡하게 만들기 위해 Python 은 대부분의 언어와 마찬가지로 다른 실행 파일을 호출 할 수도 있지만 더 번거롭고 자주 사용되지는 않습니다.

사용자 인터페이스

Python 이 확실한 승자 인 한 영역 은 사용자 인터페이스입니다. 이는 기본적으로 GTK 그래픽을 지원하고 Bash 보다 훨씬 직관적이기 때문에 로컬 또는 클라이언트-서버 애플리케이션을 구축하는 데 탁월한 언어입니다 .

Bash 는 텍스트 만 이해합니다. GUI 및 데이터를 다시 전달하려면 다른 도구를 호출해야합니다. 파이썬 스크립트는 하나 개의 옵션입니다. 더 빠르지 만 덜 유연한 옵션은 YAD, Zenity 및 GTKDialog와 같은 바이너리 입니다.

반면 같은 껍질 배쉬 같은 GUI를 잘 작동 야드 , GtkDialog (임베디드 XML이 같은 GTK + 기능 인터페이스) , 대화 , 그리고 xmessage , 파이썬은 훨씬 더 할 수있는 등 더 복잡한 GUI 창입니다.

요약

쉘 스크립트를 사용하여 빌드하는 것은 데스크탑 PC와 같은 기성 구성 요소로 컴퓨터를 조립하는 것과 같습니다.

Python으로 빌드 , C ++ 또는 대부분의 다른 언어 것이 더 함께 스마트 폰이 길을 칩 (라이브러리) 및 기타 전자 부품을 납땜하여 컴퓨터를 구축하는 것과 같다.

최상의 결과는 일반적으로 각자가 가장 잘하는 일을 할 수있는 언어 조합을 사용하여 얻을 수 있습니다. 한 개발자는 이것을 " 다국어 프로그래밍 " 이라고 부릅니다 .


16
나는 그것이 어떻게 받아 들여질 수 있는지 인식하지 못하고 있습니다. 이 두 가지가 더 적합한 작업에 대한 통찰력을 제공하지 않습니다.
감시자

2
@vigilancer 방금 게시 한 수정 사항과 추가 사항이 도움이 되었기를 바랍니다.
DocSalvager 2016 년

1
나는 다른 의견에 동의하지만 이것은 질문에 정확히 대답하지 않습니다. 이것은 내가 읽은 최고의 답변 중 하나입니다!
Jim Mitchener 2019

72

일반적으로 bash는 python을 사용할 수없는 환경에서만 python보다 잘 작동합니다. :)

진지하게, 나는 매일 두 언어를 다뤄야하고, 선택이 주어진다면 즉시 bash를 통해 파이썬을 가져갈 것이다. 아아, 누군가가 (오해하게도 IMHO) 파이썬이 적합하기에 "너무 크다"고 결정했기 때문에 특정 "작은"플랫폼에서 bash를 사용해야합니다.

일부 선택 작업에 ​​대해 bash가 Python보다 빠를 수 있다는 것은 사실이지만, 개발이 빠르거나 유지 관리가 쉽지는 않습니다 (적어도 10 줄 정도의 코드가 지나면). Bash의 유일한 장점은 파이썬이나 루비, 루아 등의 편재성입니다.


4
Python이 이미 모든 Linux / Unix, 심지어 MacOS에 있지 않습니까? bash에서 어떤 작업이 더 빠른지 궁금합니다. 내가 이해 한 바에 따르면 다른 개별 명령을 호출하면 Python os또는 shutil모듈 명령 보다 훨씬 느립니다 .
NoBugs 2015

1
@NoBugs 모든 단일 Linux / Unix 배포판에있는 것은 아닙니다. 거의 모든 주요 리눅스 배포판 (예 : 데비안 기반 배포판, 슬랙웨어 등)과 Mac OS X에서 제공되지만, yocto ( yoctoproject.org ) 를 사용하여 고유 한 iso를 빌드 하면 사용할 수 없습니다. 모든 패키지를 직접 사용자 정의 할 수 있습니다. 그러나 오늘날 주요 Unix OS의 경우 python2 (적어도)와 python3도 함께 설치 될 것이라고 말하는 것이 안전 할 것입니다.
dylnmc

Python은 완전한 기능을 갖춘 GUI와 같은 복잡한 작업을위한 탁월한 스크립팅 언어입니다. 마찬가지로 중요한 것은 좋은 프로그래밍 관행을 시행하므로 프로그램을 유지하기가 더 쉽습니다. Bash는 유지 관리가 가능하기 위해 다른 곳에서 배운 모범 사례를 부과해야합니다. 그렇게함으로써 GUI 대화 유틸리티 또는 Python for UI를 사용하면 뛰어난 성능 (Bash에서 호출되는 매우 빠른 유틸리티 프로그램을 통해)과 우수한 UX를 제공합니다.
DocSalvager

34

bash와 Python이 합리적인 선택 인 시나리오에서 개발자 효율성 은 나에게 훨씬 더 중요합니다.

일부 작업은 bash에 적합하고 다른 작업은 Python에 적합합니다. bash 스크립트로 무언가를 시작하고 몇 주에 걸쳐 진화함에 따라 Python으로 변경하는 것도 드문 일이 아닙니다.

Python의 큰 장점은 파일 이름 처리와 관련된 코너 케이스에 있으며 일반적인 스크립팅 요구 사항을위한 glob , shutil , subprocess 및 기타 기능이 있습니다.


5
이 질문은 개발자 성능이 아닌 기계 성능을 의미하는 "성능 측면"비교를 목표로했습니다. 다른 답변에서 내 성능 테스트를 참조하십시오.
Grzegorz Luczywo

25

스크립트를 작성할 때 성능은 중요하지 않습니다 (대부분의 경우).
성능에 관심이 있다면 'Python vs Bash'는 잘못된 질문입니다.

Python :
+ 작성
하기 쉬움 + 유지
하기 쉬움 + 코드 재사용 용이 (일반 코드가있는 파일을 포함하는 보편적 인 오류 방지 방법을 찾으십시오. sh감히)
+ OOP도 가능합니다!
+ 더 쉬운 인수 구문 분석. 글쎄, 쉽지는 않습니다. 그것은 여전히 ​​내 취향에 너무 장황 할 것 argparse입니다. 그러나 파이썬에는 기능이 내장되어 있습니다
.-추악한 '하위 프로세스'. 명령을 연결하고 코드가 얼마나 추악 해 질지 강하게 울지 마십시오. 특히 종료 코드에 관심이 있다면.

Bash :
+ ubiquity, 앞서 말했듯이 실제로.
+ 간단한 명령 체인. 이것이 다양한 명령을 간단한 방법으로 결합하는 방법입니다. 또한 Bash(아님 sh)과 같은 일부 개선 사항이 pipefail있으므로 연결이 정말 짧고 표현력이 좋습니다.
+ 타사 프로그램을 설치할 필요가 없습니다. 바로 실행할 수 있습니다.
-맙소사. IFS, CDPATH .. 수천 개.

하나는 스크립트를보다 큰 100 LOC를 작성하는 경우 선택 파이썬을
하면 스크립트에서 하나의 필요 경로 조작 : 선택 파이썬 (3)
필요 다소처럼 하나의 경우 alias선택 :하지만 약간 복잡 배쉬를 / 쉬

어쨌든, 그들이 무엇을 할 수 있는지 아이디어를 얻기 위해 양쪽 모두를 시도해야합니다.

패키징 및 IDE 지원 지점으로 대답을 확장 할 수 있지만이 측면에 대해 잘 모릅니다.

항상 그렇듯이 똥 샌드위치와 거대한 주물 중에서 선택해야합니다. 그리고 몇 년 전만해도 Perl은 새로운 희망이었습니다. 지금있는 곳.


4
예, bash가 포함 된 코드는 영원합니다. Perl을 많이 코딩했는데 이제는 쓸모가 없습니다.
Raymond gsh

그냥 원근법을 위해 ... 내가 매일 작성하는 가장 큰 스크립트는 실제, 주석이 아닌 또는 빈 줄 bash 코드의 4121 줄에 달합니다. 광범위한 주석 등으로 ​​7261 줄을 만듭니다. 또 다른 6650 줄인 모든 기능에 대한 맨 페이지와 같은 문서의 도움말 파일이 함께 제공됩니다. 모든 기능에는 현재 3 가지 버전의 YAD, Zenity, 대화 상자 또는 일반 CLI 텍스트가 포함 된 최상의 출력 형식으로 도움말 텍스트를 즉시 검색하고 표시 할 수있는 옵션이 있습니다. 나는 그것을 '키트'라고 부른다. 이 글을 쓰는 현재 버전 44에 있습니다.
DocSalvager

무거워! (c)
vigilancer

1
저는 LoC가 실제로 Python을 선택하는 결정 요인이라고 생각하지 않습니다. 더, 당신이하는 일이 얼마나 복잡합니까? 아마도 괜찮은 100 개의 명령을 연결하는 중이라면 bash에서는 LoC가 30 개이지만 Python에서는 이해하기 더 쉬울 수 있습니다. Python을 사용하세요.
JFord

@Akito 아무것도 건드리지 않으면 괜찮습니다. 하지만 일이 잘못 될 수있는 몇 가지 상황이 있습니다. 기본값이 아닌 것으로 설정하고 지우는 것을 잊었습니다. 외부의 무언가가 변경되었지만 스크립트는 기본값에 의존합니다. 일부 도구가 암시 적으로 사용하기 때문에 IFS를 항상 염두에 두어야합니다.
경계 자

22

성능면에서 bash는 프로세스 시작 시간에 python보다 성능이 뛰어납니다.

다음은 Linux Mint를 실행하는 핵심 i7 랩톱의 몇 가지 측정 값입니다.

Starting process                       Startup time

empty /bin/sh script                   1.7 ms
empty /bin/bash script                 2.8 ms
empty python script                    11.1 ms
python script with a few libs*         110 ms

* Python로드 라이브러리 : os, os.path, json, 시간, 요청, 스레딩, 하위 프로세스

이것은 큰 차이를 보여 주지만 일반적으로 외부 프로세스를 호출해야하기 때문에 bash 실행 시간이 현명한 작업을 수행해야하는 경우 빠르게 저하됩니다.

성능에 관심이 있다면 bash는 다음 용도로만 사용하십시오.

  • 정말 간단하고 자주 호출되는 스크립트
  • 주로 다른 프로세스를 호출하는 스크립트
  • 수동 관리 작업과 스크립팅 사이에 최소한의 마찰이 필요한 경우-몇 가지 명령을 빠르게 확인하여 file.sh에 배치합니다.

... /bin/echo배쉬보다이 정도 크기 때문에 측정하기가 어렵습니다. 따라서 bash를 실행하는 대신 /bin/echo mycommand > named_pipe(명령어 / 메시지를 명명 된 파이프 또는 소켓으로 출력) ... 사용하고 해당 파이프에서 명령 / 명령을 읽고 실행하는 백그라운드 Python 프로세스를 가질 수 있습니다. 따라서 bash는 실제로 좋은 "시작 비용 최적화"가 아닙니다.
Cezary Baginski

일반적으로 작업이 매우 짧고 빠르면 프로세스 대신 스레드를 사용해야합니다. 다중 프로세스는 높은 수준의 문제이며 하나를 시작하는 데 0.5 초 이내이면 대부분의 경우 상당히 합리적으로 보입니다. 그렇지 않습니까?
Timothy Swan

16

Bash는 주로 배치 / 셸 스크립팅 언어로, 호환성 문제는 말할 것도없고 다양한 데이터 유형과 제어 구조에 대한 모든 종류의 단점을 훨씬 덜 지원합니다.

어느 것이 더 빠릅니까? 여기에서도 사과와 사과를 비교하지 않았기 때문입니다. ascii 텍스트 파일을 정렬해야하고 zcat, sort, uniq 및 sed와 같은 도구를 사용했다면 Python 성능을 현명하게 사용하게 될 것입니다.

그러나 부동 소수점 및 다양한 제어 흐름을 지원하는 적절한 프로그래밍 환경이 필요한 경우 Python이 승리합니다. Bash와 Python으로 재귀 알고리즘을 작성했다면 Python 버전이 몇 배 이상 승리 할 것입니다.


13
그래서 내 호언의 전체적인 도덕은 : 올바른 일을 위해 올바른 도구를 사용하는 것입니다.
Justin

2
부동 소수점은 awk, bc와 같은 도구와 zsh / ksh와 같은 셸에서 지원됩니다. 그런데 왜 파이썬이 승리한다고 말합니까?
ghostdog74 2010 년

4
그 도구는 Bash가 아니기 때문입니다. 나는 뚜렷한 차이점을 지적했습니다. 이러한 도구는 셸 스크립트에서 사용되지만 기본 Bash 자체는 부동 소수점을 지원하지 않습니다.
Justin

2
아니요. 직접 시도해보세요. 큰 로그 파일을 gzip하고 zcat, sort 등을 사용하여 필터링을 수행 한 다음 네이티브 Python 라이브러리를 사용합니다. 기본 도구를 사용하면 훨씬 더 빠릅니다.
저스틴

6
@justin, 예, 이러한 도구는 Bash가 아니지만 고대부터 사용되어 왔으며 종종 쉘 스크립팅에 사용됩니다. 부동 소수점을 원하면 awk / bc를 사용하십시오. 쉘 스크립팅을 Python만큼 강력하게 만드는 이러한 도구의 조합입니다.
ghostdog74 2010 년

12

최소한의 노력으로 빠른 유틸리티를 함께 사용하려는 경우 bash가 좋습니다. 응용 프로그램을 둘러싼 래퍼의 경우 bash는 매우 유용합니다.

개선 사항을 추가하기 위해 계속해서 돌아와야 할 수있는 모든 것은 아마도 (항상은 아니지만) 파이썬과 같은 언어에 더 적합 할 것입니다. 1000 줄이 넘는 Bash 코드는 유지 관리가 매우 고통스러워지기 때문입니다. Bash 코드도 길어지면 디버깅을 짜증나게합니다 .......

이러한 종류의 질문에 대한 문제의 일부는 내 경험상 쉘 스크립트가 일반적으로 모두 사용자 지정 작업이라는 것입니다. 이미 무료로 사용할 수있는 솔루션이있는 곳에서 접한 쉘 스크립팅 작업은 거의 없었습니다.


8

Bash 성능이 적어도 내가 생각하는 두 가지 시나리오가 있습니다.

  • 명령 줄 유틸리티 스크립팅
  • 실행 시간이 짧은 스크립트 Python 인터프리터를 시작하는 데 작업 자체보다 더 많은 시간이 걸리는 경우

즉, 저는 보통 스크립팅 언어 자체의 성능에 대해서는 신경 쓰지 않습니다. 성능이 실제 문제라면 스크립트가 아니라 프로그램 (아마도 Python)입니다.


4

주로 Google이이 질문을 좋아하기 때문에이 늦은 답변을 게시합니다.

문제와 맥락은 도구가 아니라 워크 플로에 관한 것이어야한다고 생각합니다. 전반적인 철학은 항상 "작업에 적합한 도구 사용"입니다. 그러나 그 전에는 많은 사람들이 도구에서 길을 잃었을 때 종종 잊어 버리는 "일을 완수하라"는 이야기가 나옵니다.

완전히 정의되지 않은 문제가 있으면 거의 항상 Bash로 시작합니다. 읽기와 유지 관리가 가능한 큰 Bash 스크립트에서 몇 가지 형편없는 문제를 해결했습니다.

하지만 언제 문제가 Bash에게 요청해야하는 작업을 초과하기 시작합니까? 경고를주기 위해 사용하는 몇 가지 수표가 있습니다.

  1. Bash가 2D (또는 그 이상) 배열을 갖고 싶습니까? 그렇다면 Bash가 훌륭한 데이터 처리 언어가 아니라는 것을 깨달을 때입니다.
  2. 실제로 해당 유틸리티를 실행하는 것보다 다른 유틸리티에 대한 데이터 준비 작업을 더 많이하고 있습니까? 그렇다면 Bash가 훌륭한 데이터 처리 언어가 아니라는 것을 다시 한 번 깨달으십시오.
  3. 내 스크립트가 관리하기에 너무 커지나요? 그렇다면 Bash는 스크립트 라이브러리를 가져올 수 있지만 다른 언어와 같은 패키지 시스템이 없다는 것을 인식하는 것이 중요합니다. 대부분의 다른 언어에 비해 정말 "자신 만의"언어입니다. 다시 말하지만, 엄청난 양의 기능이 내장되어 있습니다 (일부는 너무 많이 말합니다 ...)

목록은 계속됩니다. 결론적으로, 기능을 추가하는 스크립트를 계속 실행하기 위해 더 열심히 노력하고 있다면 Bash를 떠날 때입니다.

작업을 Python으로 옮기기로 결정했다고 가정 해 보겠습니다. Bash 스크립트가 깨끗한 경우 초기 변환은 매우 간단합니다. 첫 번째 패스를 수행 할 여러 변환기 / 번역가도 있습니다.

다음 질문은 : 파이썬으로 이전하는 것을 포기하는 것은 무엇입니까?

  1. 외부 유틸리티에 대한 모든 호출은 subprocess모듈 (또는 이와 동등한 것)의 무언가로 래핑되어야합니다 . 이 작업을 수행하는 방법은 여러 가지가 있으며 3.7까지 올바른 작업을 수행하기 위해 약간의 노력이 필요했습니다 (3.7은 subprocess.run()모든 일반적인 사례를 자체적으로 처리하도록 개선되었습니다 ).

  2. 놀랍게도 Python에는 키보드 (stdin) 폴링을위한 표준 플랫폼 독립적 인 비 차단 유틸리티 (시간 초과 포함)가 없습니다. Bash read명령은 간단한 사용자 상호 작용을위한 멋진 도구입니다. 필자의 가장 일반적인 용도는 사용자가 키를 누를 때까지 스피너를 표시하는 동시에 폴링 기능 (각 스피너 단계마다)을 실행하여 작업이 여전히 잘 실행되고 있는지 확인하는 것입니다. 이것은 처음에 나타나는 것보다 더 어려운 문제이므로 종종 Bash : Expensive에 전화를 걸지만 정확히 필요한 작업을 수행합니다.

  3. 임베디드 또는 메모리 제약이있는 시스템에서 개발하는 경우 Python의 메모리 공간은 Bash의 메모리 공간보다 몇 배 더 클 수 있습니다 (현재 작업에 따라 다름). 또한 거의 항상 메모리에 이미 Bash 인스턴스가 있으며 Python의 경우가 아닐 수 있습니다.

  4. 한 번 실행되고 빠르게 종료되는 스크립트의 경우 Python의 시작 시간이 Bash보다 훨씬 길 수 있습니다. 그러나 스크립트에 중요한 계산이 포함되어 있으면 Python이 빠르게 앞서갑니다.

  5. 파이썬은 지구상에서 가장 포괄적 인 패키지 시스템을 가지고 있습니다. Bash가 약간 복잡해지면 Python에는 Bash의 전체 청크를 단일 호출로 만드는 패키지가있을 수 있습니다. 그러나 사용할 올바른 패키지를 찾는 것은 Pythonista가되는 데있어 가장 크고 어려운 부분입니다. 다행히 Google과 StackExchange는 친구입니다.


2

이것이 정확한지 모르겠지만 수학적 계산이 많은 스크립트에서 python / ruby가 훨씬 더 잘 작동한다는 것을 발견했습니다. 그렇지 않으면 사용해야합니다dc 다른 "임의의 정밀 계산기" 합니다. 그것은 매우 큰 고통이됩니다. 파이썬을 사용하면 부동 소수점과 정수를 훨씬 더 많이 제어 할 수 있으며 많은 계산을 수행하는 것이 훨씬 쉽고 때로는 훨씬 쉽습니다.

특히 바이너리 정보 나 바이트를 처리하기 위해 bash 스크립트를 사용하지 않습니다. 대신 파이썬 (아마도) 또는 C ++ 또는 Node.JS와 같은 것을 사용합니다.


Bash 산술은 엄밀히 말하면 정수이므로 다른 것을 호출하고 (awk 또는 dc와 같은) 출력을 캡처하여 부동 소수점 연산을 수행해야합니다. 간단한 금전적 일은 종종 100을 곱하고 출력의 소수점을 조정하여 내부적으로 수행 할 수 있습니다.
DocSalvager

0

성능면에서 두 가지 모두 똑같이 똑같이 할 수 있으므로 개발 시간을 더 많이 절약 할 수있는 문제는 무엇입니까?

Bash는 다른 명령을 호출하고 새 명령을 만들기 위해 파이프에 의존합니다. 이것은 그들이 사용하는 프로그래밍 언어에 관계없이 다른 사람들로부터 빌린 코드로 새로운 프로그램을 빠르게 만들 수 있다는 장점이 있습니다.

이것은 또한 하위 명령 간의 인터페이스가 일반 텍스트이기 때문에 하위 명령의 변경에 저항하는 부작용도 있습니다.

또한 Bash는 글을 쓰는 방법에 대해 매우 관대합니다. 이것은 더 다양한 컨텍스트에서 잘 작동하지만, 또한 깨끗하고 안전한 방식으로 코딩하려는 의도를 가진 프로그래머에 의존한다는 것을 의미합니다. 그렇지 않으면 Bash는 당신이 엉망이되는 것을 막을 수 없습니다.

파이썬은 스타일에 대해 더 구조화되어 있으므로 지저분한 프로그래머는 그렇게 지저분하지 않습니다. 또한 Linux 외부의 운영 체제에서도 작동하므로 이러한 종류의 이식성이 필요한 경우 즉시 더 적합합니다.

그러나 다른 명령을 호출하는 것은 간단하지 않습니다. 따라서 운영 체제가 유닉스라면 Bash에서 개발하는 것이 가장 빠른 개발 방법이라는 것을 알게 될 것입니다.

Bash를 사용하는 경우 :

  • 비 그래픽 프로그램이거나 그래픽 엔진의 엔진입니다.
  • 유닉스 전용입니다.

Python을 사용하는 경우 :

  • 그래픽 프로그램입니다.
  • Windows에서 작동합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.