2012-08-03 3 views
0

내 쉘 스크립트에서 source 명령을 사용하고 싶습니다.를 참조하십시오. 내가 터미널에서 소스를 입력 할 때 지금은 내가이쉘 스크립트의 다른 파일에서 명령 읽기?

#!/bin/sh 
source 

처럼 내 쉘 스크립트에서 이것을 사용 test.sh

로 저장하고 실행하면 다음과 같이 얻을 지금

-bash: source: filename argument required 
source: usage: source filename [arguments] 

처럼 보여줍니다 이

./test.sh: 2: source: not found 

이 문제를 해결하는 방법은 무엇입니까?

+1

출처에는 인수가 필요합니다. 당신이 그것을하지 않고 무엇을 기대합니까? – knittl

+0

나는 그것을 알고 있지만 여기서 문제는 소스 명령이 발견되지 않는다는 것이다 ... 만약 내가 인수를 여전히 제공하지 않는다면 ... –

+0

'bash에서'source file' 또는 csh는'file'에서 명령을 현재 쉘로 읽는 명령이다. (스크립트 또는 대화식 세션). 좀 더 이식 가능한 버전은 * dot * 명령'입니다. 파일 '. 이것은 모든 일반적인 유닉스 셸에서 지원됩니다. –

답변

5

bash이 아닌 sh으로 스크립트를 실행합니다. source은 보통 sh에 존재하지 않지만 대신 .을 사용할 수 있습니다.

#!/bin/sh 
. /path/to/other/script 
function_defined_in_other_script 
+0

실제로'를 사용하십시오. 파일'을 사용하여 다른 쉘에서 작동하게합니다. –

+0

@HenkLangeveld :'.'은'dash' (우분투에서는'sh'의 기본값)에서 작동하지 않습니다. 그것도 맨 페이지에 문서화되어 있지 않습니다. – knittl

+0

'$. ./test_dot.sh'결과는'This is test_dot.sh, 대시에서 호출했다. (파일에'echo 이것은 test_dot.sh입니다. $ 0 에서 호출했습니다.') –

관련 문제