"dirs"가 스크립트의 전체 DIRSTACK 목록을 어떻게 나열합니까?

"dirs"가 스크립트의 전체 DIRSTACK 목록을 어떻게 나열합니까?

내 테스트 스크립트:

#!/bin/bash
dirs -p >> work_note.txt

10개 디렉터리 스택에서 상위 1개만 반환합니다. dirs -p또는 dirs -v명령줄을 실행하면 전체 스택을 가져옵니다.

내가 놓친 부분에 대한 조언이나 지식을 주시면 감사하겠습니다.

메모 나의 주요 목표는 DIRSTACK을 파일에 기록하는 로그아웃 프로세스를 생성하여 터미널에서 수행 중이던 작업을 기억할 수 있도록 하는 것입니다. 나는 보통 여러 개의 터미널을 가지고 있습니다.

답변1

이는 DIRSTACK지역 변수이며 스크립트, 하위 쉘, 하위 프로세스 등에 전달되지 않습니다. .bashrc스크립트 대신 에 로드된 함수를 사용하는 것이 좋습니다 .

답변2

나는 이 트릭을 사용하여 모든 세션에서 내 디렉토리 스택을 검색했습니다. 저는 파일로 저장하곤 했어요. 다른 터미널로 가져오기/내보내기도 가능해요

.bashrc에 이 함수를 정의하세요.

stackd () 
{ 
    SAVEIFS=$IFS;
    IFS=$(echo -en "\n\b");
    builtin cd $@ && builtin pushd "$PWD" > /dev/null;
    dirs -l -p >> $HOME/.iostackd/dirstack && sort -u -o $HOME/.iostackd/dirstack $HOME/.iostackd/dirstack > /dev/null;
    IFS=$SAVEIFS
}

별칭으로 'cd'를 과부하하세요.

alias cd='stackd "$1"'

관련 정보