2017-12-14 7 views
0

korn 셸 스크립트를 사용하여 레이블 유형을 잠그려고했지만 잠금 할 수 없습니다.
Korn 스크립트를 처음 접했을 때 나를 도와 줄 수 있습니다. 옆에korn 셸 스크립트를 사용하여 클리어 케이스 레이블 유형 잠금

cmUsers="user1,user2"; 
myuserName=$ENV{LOGNAME}; 

#checking whether current user is part of cmUsers list or not. 

if [[ "$cmUsers" =~ m/$myUserName/i ]] 

# if user belongs to cmUsers list, then trying to lock the lable type, 
# if it fails exiting the process, else printing the success message 

    "ct lock -nuser \"$cmUsers\" lbtype:${label}@/vobs/admin_rec" ;then 
    die"Unable to lock label type: \"${label}\"\n"; 
    else 
    print "Label ${label} has been successfully locked by $cmUsers" 
    fi 
+0

내가 당신의 Q의 서식을 정리하려고하지만 ''ct lock -nuser .... ''가 cmd 또는 주석의 일부가 아닌 경우에 얻지 마십시오. 일반 텍스트 파일에서 다시 작성하고 편집 상자의 왼쪽 상단에있는 {{}'도구 (강조 표시된 텍스트)를 사용하여 code/data/errorMsgs/등의 올바른 형식을 유지하십시오. 행운을 빕니다. – shellter

+0

또한 ** 귀하의 코드를 여기에 게시하기 전에 http://shellcheck.net ** **을 사용하는 방법을 배우십시오 ;-). shellcheck을 사용할 때'#!/bin/ksh'의 첫 번째 줄에 적절한 "she-bang"줄을 포함시켜야합니다. https://stackoverflow.com/tags/bash/info 여러 번 읽으면 상위 10 개 셸 스크립트 초보자 실수를 피할 수 있습니다. (이것들의 대부분은'ksh'에도 적용됩니다). 행운을 빕니다. – shellter

+1

두 번째 줄은 약간 보입니다. Perl-ish; 환경 변수에 접근하려고한다면'myuserName = $ LOGNAME'을 원한다고 생각하고 (또는'$ myuserName'을 사용할 때마다'$ LOGNAME'을 사용하십시오) – chepner

답변

0

shebang는 하나의 간단한 팁 스크립트에서 별칭 (ct)를 사용하지 않도록하는 것입니다 :

여기에 내 현재 코드 전체 명령 cleartool를 대신 사용합니다.
는 "Ksh Scripting"및 "ksh class"그러나

#!/bin/ksh 
cmUsers="user1,user2"; 
myuserName=$ENV{LOGNAME}; 

#checking whether current user is part of cmUsers list or not. 
if [[ "$cmUsers" =~ m/$myUserName/i ]]; then 
    # if user belongs to cmUsers list, then trying to lock the lable type, 
    # if it fails exiting the process, else printing the success message 
    cleartool lock -nuser \"$cmUsers\" lbtype:${label}@/vobs/admin_rec" 
    if [ $? -ne 0 ]; then 
     echo "CRITICAL: Unable to lock label type: \"${label}\"" 
     exit 1 
    fi 
    echo "Label ${label} has been successfully locked by $cmUsers" 
fi 

, 당신은 ClearCase 7.x의를 사용하는 경우가 KSH 또는 다른 쉘이 아니라 ratperl (하지 않을 수도 있습니다 사실 $ENV{LOGNAME} 점과 같은 표현식 이상) : 참조 " About ratlperl and its impact on cqperl and ccperl"

하는 경우, 오두막을 제거하여 스크립트를 실행하려고 :

ccperl yourScript.pl 
+0

이전 스크립트 (레이블 유형을 생성)에이 스크립트를 포함 시켰습니다. 스크립트를 실행하려고하면 이전 스크립트 행의 오류가 표시됩니다. 그러나 이전 스크립트를 추가하지 않고 실행하려고 할 때 잘 실행됩니다. 그게 뭐라고 생각하니? – clearclase

+0

@clearclase이 스크립트는 포함시키지 않을 것이라고 생각합니다. 그것은 독립 실행 형 스크립트로 실행하기위한 것입니다. – VonC

관련 문제