예를 들어, rsync
으로 백업을 백업하는 bash 쉘 스크립트를 작성하고 싶습니다. 독립 실행 형 스크립트 파일 (backup.sh
)으로 넣거나 함수 (backup
)로 묶어야합니까? 스크립트 파일로 실행할 수 있습니다. bash backup.sh
. 함수로, foo.sh
과 같은 파일에 넣고 로그인 할 때마다 소스를 넣을 수 있습니다. 그러면 내 파일을 백업하는 명령으로 backup
을 간단하게 실행할 수 있습니다. 문제는 두 가지 전략에 대한 단점과 찬성은 무엇인가?독립 실행 형 셸 스크립트 대 셸 함수?
더 일반적으로, 어떤 상황에서 독립 실행 형 셸 스크립트 파일 또는 셸 함수로 기능을 구현해야합니까?
내 생각 : 일부 그래픽 세션 (예 : KDE, Gnome 등)은 로그인 할 때 다른 파일을 소스 화합니다. 그래픽으로 실행되는 응용 프로그램에서 셸 기능을 사용하려는 경우 (예 : 아이콘을 클릭하여 이맥을 여는 경우) 혼란을 야기 할 수 있습니다. 그러나 필자는 셸 함수를 구현하여 파일로 결합하는 것을 선호합니다. 이것은 깔끔하고 잘 정리 된 것입니다.
다른 아이디어 나 제안이 있으십니까?
기준은 나에게 매우 모호하게 보입니다. 나는 스크립트가 가져 오는 명확성을 정말로 보지 못한다. 함수가 취하는 자원은 종종 소홀히합니다. 그렇지 않습니까? – RNA
그들은 다소 모호하지만, 한 시간에 한 번 이상 코드를 사용하지 않으면 스크립트에 속합니다. 나는 그것보다 훨씬 자주 사용하는 것에 스크립트를 사용한다. 사실, 나는 쉘에 두 가지 기능을 가지고 있는데 그 중 하나는 IT 제공'/ etc/profile'의 버그 때문이다. (버그 :'unset pathmunge'는 함수를 제거하지 않는다; 'unset -f pathmunge'), 그리고 나는 다른 것을 만들지도 않았다. 나는 아직 그 기원을 추적하지 못했다. 나는 항상 스크립트를 사용한다. 내 $ HOME/bin에 수백 가지가 있습니다. [... 계속 ...] –
[... 계속 ...] 나를 틀리게하지 마십시오; 기능을 사용할 때가 있습니다. 많은 스크립트에는 스크립트를 작성하기가 더 쉽기 때문에 함수가 포함되어 있습니다. 하지만 주요 로그인 쉘 환경에서 기능을 많이 사용하지는 않습니다. –