Tôi thích câu trả lời của garyjohn khi sử dụng RunningX vì nó thông minh về các biến HIỂN THỊ xấu nhưng không trống.
Nhưng .. tôi muốn đi tốt hơn Tôi thường sử dụng các phiên màn hình. Tôi có thể bắt đầu một phiên màn hình ở nhà, HIỂN THỊ được xác định. Sau đó, tôi đến từ nơi khác, HIỂN THỊ vẫn được xác định và nó thực sự hiển thị ... ở nhà! Vì vậy, sau đó tôi sẽ 'xuất $ HIỂN THỊ ='. Điều này tốt nhưng vì câu trả lời đó đã được kiểm tra và đã tìm thấy biến HIỂN THỊ hợp lệ tại thời điểm .bashrc ban đầu chạy EDITOR vẫn sẽ được đặt thành gvim.
Tôi đến đây để tìm giải pháp cho một vấn đề tương tự, tôi muốn sử dụng yelp để duyệt manpage X-GUI nhưng tự động thả xuống lệnh man truyền thống khi không sử dụng X. Dựa trên những gì tôi đọc ở đây, tôi đã nghĩ ra điều này:
man () {
if RunningX
then
yelp "man:$@";
else
/usr/bin/man "$@";
fi
}
Tôi nghĩ rằng đối với vấn đề EDITOR, người ta có thể làm như sau:
EDITOR=vim
vim () {
if RunningX
then
gvim "$@";
else
vim "$@";
fi
}
Tôi vừa mới đăng câu chuyện dài nhưng tôi chưa thử. Tôi coi mình là một người mới chơi bash. Tôi đã thử nghiệm 'lệnh người đàn ông' của mình, nó hoạt động! Tôi đang sử dụng emacs cho trình soạn thảo của mình, tuy nhiên, nó tự kiểm tra X. Tôi thậm chí không cài đặt gvim.
if [[ $DISPLAY ]]
cho người hâm mộ khung đôi ...