Mac OSX(Mountain Lion)에는 쉘 스크립트 "a"가 있습니다.
#!/bin/bash
open -a Terminal b
터미널을 사용하여 다른 쉘 스크립트 "b"를 실행하십시오.
echo `pwd`
흥미롭게도 실행 스크립트가 어디에 있든 pwd
"b"의 명령은 항상 홈 디렉터리를 반환합니다.
질문:
- 왜 이런 일이 발생합니까?
- 실행 환경을 홈 디렉터리 대신 작업 디렉터리로 설정하는 방법(예: 도착 시 작업 디렉터리로 돌아가기
pwd
)
답변1
open -a Terminal b
b
Finder에서 터미널을 여는 것과 같습니다 . LaunchServices에게 터미널에서 열도록 지시 b
하고 현재 환경에 대한 정보를 전달하지 않습니다.
cd "$(dirname "$0")"
스크립트 디렉토리로 CD를 이동할 수 있습니다 .
새 터미널 창에서 스크립트를 실행하려면 AppleScript를 사용할 수 있습니다.
osascript -e 'tell app "Terminal" to do script "cd " & quoted form of (system attribute "PWD") & "; ~/bin/b"'