แบบนี้?
socat tcp-listen:8080,reuseaddr,fork system:'ls; ผู้บริหาร socat - tcp\:localhost\:80'
พารามิเตอร์ที่ 1 ได้รับ ,ส้อม
เพื่อที่จะมี โซแคท
รับฟังการเชื่อมต่อเพิ่มเติม
ระบบ:
เป็นที่ต้องการมากกว่า ผู้บริหาร:
เพื่อให้มีตัวแปลเชลล์และเรียกใช้คำสั่งเพิ่มเติมได้อย่างง่ายดายหลังจาก ล
สั่งการ,
ซึ่งเป็นของใหม่ โซแคท
สั่งการ
ซึ่งจะมีการเชื่อมต่อ stdin/stdout กับเอาต์พุต/อินพุตของไคลเอนต์ระยะไกล และจะส่งต่อแบบสองทิศทางอีกครั้งไปยังปลายทางถัดไป โปรดทราบว่ามัน :
ตัวคั่น (และอักขระพิเศษอื่นๆ อีกสองสามตัว) จะต้องหนีด้วย a \
เพื่อไม่ให้สับสน แรก โซแคท
สั่งการ. หากบรรทัดนี้ซับซ้อนมากขึ้น การเรียกใช้สคริปต์เช่นนี้จะง่ายขึ้น:
socat tcp-listen:8080,reuseaddr,fork exec:/path/to/myscript.sh
กับ /path/to/myscript.sh
:
#!/bin/sh
ล
ผู้บริหาร socat - tcp:localhost:80
ผู้บริหาร
ในคำสั่งเชลล์เป็นทางเลือก แต่หลีกเลี่ยงการออกจากเชลล์อย่างไร้ประโยชน์
โซแคท
ยังส่งออกตัวแปรบางตัวของตัวเองที่สามารถนำมาใช้ซ้ำในสคริปต์ได้ ซึ่งคุณสามารถตรวจสอบได้ เช่น (เมื่อทำการเชื่อมต่อ):
$ 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