2012-06-13 1 views
0

OSX Lion에서 로그인 할 때 파일의 이름을 바꾸는 스크립트를 작성하려고합니다. 내가 스크립트를 실행하는 LoginHook을 만든bash 스크립트 mv 명령이 작동하지 않습니다.

#!/bin/bash 
if [ -f /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin ]; then 
    mv ~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin ~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin1 
    say "Successful" 
else 
    say "Unsuccessful" 
fi 

:

여기에 지금까지 내 스크립트입니다. "ksadmin"파일을 찾을 수있을 때 컴퓨터가 말하기 때문에 로그인 할 때 실행됩니다. 컴퓨터가 "성공"이라고 말하기 때문에 "ksadmin"파일을 찾았습니다. 나는 수동으로 파일의 이름을 바꾸고 로그 아웃했다가 다시 컴퓨터에 "Unsuccessful"이라고 표시합니다.

문제는 스크립트가 "ksadmin"을 "ksadmin1"으로 이름을 변경하지 않는다는 것입니다. 나는 제대로 지휘하도록 글을 썼는가?

모든 아이디어가 우수 할 것입니다.

모르간

+0

당신은 추가 할 수 있습니다, 다음 다음과 같이 문제의 해결책이'2> & 1> 1/tmp/mverror'를 입력 한 다음 불평하는지 확인하십시오. 어쩌면 심지어 -v로 mv를 돌릴 수도 있습니다. 실제로 실행되었다는 것을 확신 할 수 있습니다. – Miquel

+0

고마워요. 시도해 보겠습니다. – MorganR

+0

@Miquel 두 명령을 모두 시도했지만 아무 것도하지 않는 것처럼 보였습니다./tmp/디렉토리에 파일이 생성되지 않았고 파일이 옮겨 졌음을 알리지 못했습니다. – MorganR

답변

0

ksadmin의 권한은 무엇입니까? 로그인 ID에 대해서만 읽기 전용이며 ksadmin1이 이미 존재하면 mv -f가 필요할 수 있습니다. 또한 "~"을 절대 경로로 확장 할 수 있습니다. 정확히 언제 스크립트가 실행되는지는 잘 모르지만 bash는 아직 그것을 확장 할 수 없습니다.

0

감사합니다. cdarke, Miquel 및 mVChr에게 도움을 요청합니다.

#!/bin/bash 
if [ -f /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin ]; then 
    mv /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin1 
    say "Successful" 
else 
    say "Unsuccessful" 
fi 

버전 내가 배포에 사용 : 뮤직 비디오 명령의 끝에서,

#!/bin/bash 
    if [ -f /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin ]; then 
     mv /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin /Users/$1/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/MacOS/ksadmin1 
    fi