2011-12-05 7 views
0

내가 .sh로 파일의 코드를 작성하고 실행에배쉬 스크립트는 ... 파일

die() { 
    echo >&2 "[email protected]" 
    exit 1 
} 


[ "$#" -eq 2 ] || die "2 argument required, $# provided" 
echo $2 | grep -E -q '^[0-9]+$' || die "Numeric argument required, $2 provided" 


nfile_location = /home/virtual/$1 

if [ -f $nfile_location ]; 
then 
    chmod -R $2 $nfile_location 
    echo "Set permission"; 
    exit 1; 
else 
    echo "Not a correct file"; 
    exit 1; 
fi 

을 권한을 설정하는 작동하지 있지만 작동하지 않습니다. 그것은 다음과 같은 오류를 보여줍니다. 나는 bash 스크립팅의 새로운 기능인 것처럼 이해할 수 없습니다.

/root/new_scripts/setpermission.sh: line 11: nfile_location: command not found 
chmod: missing operand after `777' 
Try `chmod --help' for more information. 
Set permission 
+0

이는 대시로, 당신은 파이프 라인 및 그렙없이 $ 2 정규식 매치를 할 수 bash는 아닌 POSIX 쉘 인 경우. '[[$ 2 = ~^[0-9] + $]] || die "숫자 인수 필요, $ 2 제공" – jordanm

답변

9

= 기호 앞뒤에 공백이 없어야합니다.

잘못된 : nfile_location = /home/virtual/$1

올바른 : nfile_location=/home/virtual/$1

+0

바보 같은 실수였습니다. – Pritom

+0

문제 없음 ... 매우 일반적인 ... – mtahmed

+1

@ user1044804 문제를 해결하는 데 도움이 되었다면 대답을 수락하십시오. 답변 옆에있는 '체크 표시'를 클릭하면 녹색으로 표시됩니다. :) –