사용 사례: 저는 /path/with/a/very/long/name에 있는 터미널에서 작업 중이며 깊게 중첩된 다른 디렉토리로 변경하고 싶습니다. 하지만 내 기억으로는 그런 건 잘 모르겠어. 그래서 GUI를 탐색하여 어디를 탐색해야 하는지 알아내고 싶습니다.
나는 이 스크립트를 생각해 냈습니다.
#!/bin/sh
echo "change working directory"
MYDIRECTORY=$(kdialog --getexistingdirectory ::label1);
if [ "$?" = 0 ]; then
cd "$MYDIRECTORY"
elif [ "$?" = 1 ]; then
echo "action canceled";
else
echo "ERROR";
fi;
exit 0
불행히도 작동하지 않습니다. 스크립트가 종료되면 터미널의 원래 디렉토리에 남게 됩니다. 나는 이것이 cd 명령을 실행하는 하위 쉘이 원래 디렉토리가 복원된 상태로 종료되었기 때문이라는 것을 알게 되었습니다.
그렇다면 어떻게 목표를 달성할 수 있나요?
답변1
스크립트 파일이 아닌 쉘 함수(예: .bashrc)로 작성하세요.