Cách phân biệt giữa khởi chạy theo kịch bản Terminal và khởi chạy thủ công cho các cài đặt .bash_profile


2

Tôi có một số .bash_profilecài đặt khôi phục thư mục làm việc cuối cùng của tôi mỗi lần tôi đăng nhập vào trình bao của mình. Tuy nhiên, tôi cũng sử dụng một chương trình mở một cửa sổ đầu cuối trong thư mục hiện tại đang mở trong Finder và nó thực hiện điều này bằng cách gửi một sự kiện đến Terminal bằng SBApplication .

Có cách nào để tôi có thể phát hiện ra cách mà Terminal được mở trong tôi .bash_profilekhông? Ngay bây giờ các cài đặt bash ghi đè cd vào ứng dụng.

# Setting PATH for Python 3.4
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.4/bin"
export PATH

# My settings
trap 'printf %s "$PWD" > ~/.storepwd' EXIT

cd "$(<~/.storepwd)"

Vui lòng chỉnh sửa câu hỏi của bạn thêm các cài đặt bạn đã thêm vào .bash_profilecâu hỏi có liên quan đến câu hỏi này.
dùng3439894

Vui lòng thêm câu trả lời thay vì chỉnh sửa giải pháp cho câu hỏi của bạn. Bạn có thể thêm nó vào câu trả lời được chấp nhận hoặc người dùng jherran có thể làm điều đó
klanomath

BTW "PATH =" / Thư viện / Khung / Python.framework / Phiên bản / 3.4 / bin "... xuất PATH" có thể sẽ phá vỡ PATH của bạn
klanomath

@klanomath cảm ơn, mới vào trang này. Có, tôi đã nhanh chóng chỉnh sửa một số nội dung trong đường dẫn của mình mà tôi không nghĩ là có liên quan đến câu hỏi và quên để lại: $ {PATH} ở cuối: P
cdamayor

Câu trả lời:


0

Bạn có thể hiển thị các biến BASH trên của bạn .bash_profile. Sau đó so sánh đầu ra khi bạn tự mở thiết bị đầu cuối với đầu ra khi cd vào ứng dụng mở thiết bị đầu cuối.

Tôi có nghĩa là nối vào đầu .bash_profilecác biến bash của bạn được liệt kê trên trang web:

echo $BASH
echo $BASHOPTS
echo $BASHPID
...
echo $TMPDIR
echo $UID

Sau đó mở thủ công thiết bị đầu cuối và lưu đầu ra. Mở terminal từ cd sang và lưu đầu ra.

So sánh các tập tin.


Biến thích hợp cho ví dụ trên là TRỰC TIẾP.

Dưới đây là các cài đặt mới cho những người đi qua:

# My settings
if [ $DIRSTACK = "~" ]; then
    trap 'printf %s "$PWD" > ~/.storepwd' EXIT
    cd "$(<~/.storepwd)"
fi

1
Bạn có thể giải thích một chút về điều này, có thể bao gồm một ví dụ làm việc quá không?
dùng3439894

BASHOPTSkhông được đặt trong tiêu chuẩn bashtrên OSX.
nohillside

Cảm ơn @jherran! Biến tôi đang tìm là $ TRỰC TIẾP.
cdamayor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.