Đang cố gắng đặt địa chỉ IP SSH đến trong Thanh trạng thái tmux


2

Tôi đang cố gắng đặt địa chỉ IP đến của máy khách SSH của mình trong thanh trạng thái tmux nhưng trong suốt cuộc đời tôi, tôi không thể tìm ra nó. Đây là cài đặt hiện tại của tôi trong .tmux.conf của tôi

set -g status-right '#[fg=white]#(echo $SSH_CONNECTION | awk '{print $1}')'

Đưa cái gì?


2
Thế còn echo $SSH_CLIENT|cut -d " " -f 1? Hoặc ở lại với ví dụ của bạn: echo $SSH_CONNECTION | awk "{print \$1}"...
0xC0000022L

Vấn đề ngay lập tức với bạn status-rightlà bạn đang cố gắng lồng các dấu ngoặc đơn bên trong các dấu ngoặc đơn khác. STATUS_ACCESS_DENIED bình luận và địa chỉ câu trả lời của tôi vấn đề đó.
chepner

Câu trả lời:


1

Thử đi. Mở rộng tham số Bash cho phép bạn loại bỏ hậu tố khỏi việc mở rộng biến bằng cách sử dụng toán tử%. Dấu% duy nhất khớp với hậu tố ngắn nhất, %% dài nhất. Vì SSH_CONNECTIONcó 3 trường được phân tách bằng dấu cách, bạn cần sử dụng %% để xóa tất cả trừ trường đầu tiên (địa chỉ IP).

${SSH_CONNECTION%% *}  # Remove the first space and everything that follows it.

Vì giá trị của status-rightđược xử lý strftime(3)trước tiên, bạn cần tăng gấp đôi dấu phần trăm, vì strftimesẽ thay thế %% bằng% theo nghĩa đen.

set -g status-right '#[fg=white]#(echo ${SSH_CONNECTION%%%% *})'

1
Các lệnh trong #()sẽ kế thừa môi trường toàn cầu trên mạng. Điều này có nghĩa là giá trị được hiển thị sẽ bắt đầu từ khi máy chủ được khởi động. Nếu OP muốn giá trị được cung cấp bởi khách hàng gần đây nhất để đính kèm vào phiên , thì họ sẽ cần phân tích đầu ra của tmux show-env. Một cái gì đó như set -g status-right 'foo…#(tmux show-env|grep ^SSH_CONNECTION=|cut -d= -f2|cut -d" " -f1)…bar'(dễ hiểu hơn?) Hoặc set -g status-right 'foo…#(tmux show-env|sed -n "/^SSH_CONNECTION=/{s/[^=]*=//;s/ .*//;p;}")…bar'(ít quy trình hơn).
Chris Johnsen

Điểm rất tốt, và xứng đáng với câu trả lời của riêng mình.
chepner

Không có gì trong số này hoạt động với tôi :( Nó có thể là gì? Tôi đã thử mọi ví dụ khác ở đây - thanh trống luôn.
FelikZ 22/03/2016
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.