2014-10-24 5 views
0

내가 배쉬 스크립트의 무리를 가지고 있고 각각은 다음을 사용합니다 다음는 만들기 배쉬 모듈

BIN_CHATTR="/usr/bin/chattr" 
BIN_CHKCONFIG="/sbin/chkconfig"; 
BIN_WGET="/usr/bin/wget"; 
BIN_TOUCH="/bin/touch"; 
BIN_TAR="/bin/tar"; 
BIN_CHMOD="/bin/chmod"; 
BIN_CHOWN="/bin/chown"; 
BIN_ECHO="/bin/echo"; 
BIN_GUNZIP="/usr/bin/gunzip"; 
BIN_PATCH="/usr/bin/patch"; 
BIN_FIND="/usr/bin/find"; 
BIN_RM="/bin/rm"; 
BIN_USERDEL="/usr/sbin/userdel"; 
BIN_GROUPDEL="/usr/sbin/groupdel"; 
BIN_MOUNT="/bin/mount"; 

난 그냥 같은 글로벌 설정으로 배쉬 스크립트는 wget 수있는 방법이 있나요 및에 포함 내가 달리고 싶은 스크립트?

답변

0

가능합니다. 변수와 함수를 파일에 추가하고 실행 가능하게 만들고 스크립트에 액세스해야하는 스크립트의 맨 위에 "실행"하십시오. 다음은 그 예입니다.

$ pwd 
/Users/joe/shell 

$ cat lib.sh 
#!/bin/bash 
BIN_WGET="/usr/bin/wget" 
BIN_MOUNT="/bin/mount" 

function test() { 
    echo "This is a test" 
} 

$ cat script.sh 
#!/bin/bash 

. /Users/joe/shell/lib.sh 

echo "wget=$BIN_WGET" 

test 


$ ./script.sh 
wget=/usr/bin/wget 
This is a test 
2

예, "settings.sh"와 같은 파일에 모든 변수를 넣어 다음 스크립트에서이 작업을 수행 할 수 있습니다

source settings.sh 
2

당신은 쉘 스크립트에 변수를 유지할 수 후 해당 파일을 소스 :

source /path/to/variables.sh 

당신은 실제로 bash는 소스와 동일한 것입니다 .를 사용해야하지만, 더 나은 이동성 제공합니다 :

. /path/to/variables.sh 
,369을
1

소스 명령을 찾으십니까?

mylib.sh :

#!/bin/bash 
JAIL_ROOT=/www/httpd 
is_root(){ 
    [ $(id -u) -eq 0 ] && return $TRUE || return $FALSE 
} 

test.sh

#!/bin/bash 
# Load the mylib.sh using source comamnd 
source mylib.sh 

echo "JAIL_ROOT is set to $JAIL_ROOT" 

# Invoke the is_root() and show message to user 
is_root && echo "You are logged in as root." || echo "You are not logged in as root." 

BTW - + X 플래그 스크립트를 반영하기 위해 rsync를 -a를 사용합니다.