Câu hỏi mc-wrapper không thoát khỏi thư mục MC_PWD


Gần đây tôi đã cài đặt openSUSE 13.1 và thiết lập mc điển hình tại sao bằng cách đánh dấu mc với mc-wrapper.sh để nó thoát ra khỏi thư mục làm việc cuối cùng trong mc ví dụ. Tuy nhiên điều này dường như không hoạt động. Tôi đã cố gỡ lỗi mc-wrapper.sh tập lệnh - echo lệnh.

MC_USER=`id | sed 's/[^(]*(//;s/).*//'`
MC_PWD_FILE="${TMPDIR-/tmp}/mc-$MC_USER/mc.pwd.$$"
/usr/bin/mc -P "$MC_PWD_FILE" "$@"

if test -r "$MC_PWD_FILE"; then
        MC_PWD="`cat "$MC_PWD_FILE"`"
        if test -n "$MC_PWD" && test -d "$MC_PWD"; then
                echo "will cd in : $MC_PWD"
                cd $MC_PWD
                echo $(pwd)
        fi
        unset MC_PWD
fi

rm -f "$MC_PWD_FILE"
unset MC_PWD_FILE
echo $(pwd)

Trước sự ngạc nhiên của tôi, mc-wrapper-sh không thay đổi thư mục và nằm trong thư mục trước khi thoát nhưng trở lại trong bash nhắc thư mục làm việc là thư mục mà kịch bản đã được gọi.

Nó có thể được rằng một số thiết lập bash là cần thiết cho điều này để làm việc?


0
2017-07-12 19:14


gốc


Kịch bản của bạn chạy như một tiến trình mới với môi trường riêng của nó và không thể thay đổi môi trường của trình bao gọi. Bạn chỉ có thể thay đổi thư mục làm việc của trình bao nếu bạn mã nguồn kịch bản của mình: source name_of_your_script. - Cyrus
@Cyrus Vui lòng cung cấp câu trả lời này, vì điều này đã giải quyết được vấn đề tương tự đối với tôi. - Marcel Korpel


Các câu trả lời:


Sử dụng câu trả lời ở trên giải pháp làm việc cho bash shell là:

alias mc='source /usr/lib/mc/mc-wrapper.sh'

HOẶC LÀ

alias mc='. /usr/lib/mc/mc-wrapper.sh'

1
2018-02-14 22:40