2009-06-19 6 views

답변

51

물론 - 당신이 기능을 사용하려면 스크립트는, 명령이 어디 지점에서 파일에 function.sh의 내용을 포함하는 것과 같습니다

source function.sh 

과 같은 명령을 쓸 수에 운영. function.sh$PATH에있는 디렉토리 중 하나에 있어야합니다. 그렇지 않은 경우 절대 경로를 지정해야합니다.

+3

function.sh는 PATH의 어느 곳에 나있을 수 있습니다. bash가 posix 모드에 있으면, 현재 디렉토리를 찾지 않습니다. 이것은 모두 맨 페이지에서 설명합니다. – camh

+0

사실, 나는 다른 것들과 섞여 있었다. –

+0

'function.sh'도 코드를 가지고 있다고 가정 해 봅시다. 'source function.sh'도 코드를 실행합니까? – user1527227

9

예, 모든 기능을 공통 파일 (또는 파일)로 현지화 할 수 있습니다. 이것은 내가 나의 모든 유틸리티 기능으로하는 것입니다. 현재 쉘의 맥락에서 스크립트를 실행

. $HOME/utility.shinc 

: 나는 모든 내 프로그램에서 사용되는 홈 디렉토리에 하나의 utility.shinc 있습니다. 이것은 중요합니다 - 단순히 include 스크립트를 실행하면, 이것은 서브 쉘에서 실행되고 모든 변경 사항은 현재 쉘에 적용되지 않습니다.

스크립트 그룹에 대해 동일한 작업을 수행 할 수 있습니다. 그것이 "제품"의 일부라면 모든 스크립트와 모든 포함 된 스크립트를 단일 셸 디렉토리에 넣어 모든 것이 현지화되도록하는 경향이 있습니다.

-2

예 .. 할 수 있습니다! 원본 function_name을 스크립트에 추가하십시오. #!/bin/bash 뒤에 function_name 소스를 추가하면 변수 eg.VAR = $ (funtion_name)을 만드는 것을 선호합니다. 그런 다음 스크립트는 먼저 가져온 함수 작업을 실행 한 다음 현재 스크립트 작업을 실행하므로 변수를 만들고 사용하는 것이 좋습니다 스크립트 어디서나. 감사합니다. 당신을 위해 그 일을 기원하십시오 :

+0

왜 8 년 전에 게시 된 답변을 복사하고 있습니까? –

+0

더 나은 이해를 위해 .. 이전에 간략히 게시했습니다. –

관련 문제