Như thế này?
socat tcp-listen:8080,reuseaddr,fork system:'ls; exec socat - tcp\:localhost\:80'
tham số thứ nhất được ,cái nĩa
có socat
tiếp tục lắng nghe để có thêm kết nối
hệ thống:
được ưa thích hơn người điều hành:
để có trình thông dịch shell và dễ dàng chạy lệnh bổ sung sau ls
chỉ huy,
đó là một cái mới socat
chỉ huy
sẽ có thiết bị xuất chuẩn/thiết bị xuất chuẩn được kết nối với đầu ra/đầu vào của máy khách từ xa và sẽ chuyển tiếp nó hai chiều một lần nữa đến đích tiếp theo. Lưu ý rằng nó :
dấu phân cách (và một vài ký tự đặc biệt khác) phải được thoát bằng một \
để không nhầm lẫn đầu tiên socat
chỉ huy. Nếu dòng này trở nên phức tạp hơn, việc thực thi một tập lệnh như thế này sẽ trở nên dễ dàng hơn:
socat tcp-listen:8080,reuseaddr,fork exec:/path/to/myscript.sh
với /path/to/myscript.sh
:
#!/bin/sh
ls
exec socat - tcp:localhost:80
giám đốc điều hành
trong lệnh shell là tùy chọn nhưng tránh để xung quanh shell một cách vô ích.
socat
cũng xuất một vài biến của riêng nó có thể được sử dụng lại trong tập lệnh, ví dụ như bạn có thể kiểm tra như thế này (với một kết nối được tạo):
$ env - socat TCP-LISTEN:8080,reuseaddr,fork exec:printenv
SOCAT_PID=1057351
SOCAT_PPID=1057284
SOCAT_VERSION=1.7.4.1
SOCAT_SOCKADDR=127.0.0.1
SOCAT_SOCKPORT=8080
SOCAT_PEERADDR=127.0.0.1
SOCAT_PEERPORT=42970