ssh force tty ส่งคืนอักขระที่ไม่สามารถพิมพ์ได้พิเศษ


2

ฉันรู้ว่า ^M จะปรากฏขึ้นเมื่อ ssh -t, ref1 แต่ฉันไม่ทันสถานการณ์เมื่อ ssh -t ใน Centos 7.2 (แม้แต่ Centos 6.2 ก็โอเค แต่ไม่มีความแตกต่างระหว่างสภาพแวดล้อมของ vars) ใครรู้เรื่องนี้บ้าง หรืออาจเกี่ยวข้องกับ REF2 ?

$ ssh -t centos72 'echo $HOME' 2>/dev/null|cat -A
^[[?25h^[[0G^[[K^[[?25h^[[0G^[[K/home/user^M$
$ ssh centos72 'echo $HOME' 2>/dev/null|cat -A
/home/user$
$ ssh -t ubuntu1404 'echo $HOME' 2>/dev/null|cat -A
/home/user^M$
$ ssh ubuntu1404 'echo $HOME' 2>/dev/null|cat -A
/home/user$

คำตอบ:


2

นี่คืออักขระควบคุมสำหรับเทอร์มินัลหรือรหัส VT100 ของคุณ พวกเขาจำเป็นต้องทำให้เทอร์มินัลของคุณทำงานกับ psoudoterminal ระยะไกลเพื่อแสดงพรอมต์และสิ่งอื่น ๆ ของคุณ

คำอธิบายของแท็กจากอีกอัน ดังนั้นคำถาม และจาก วิกิพีเดีย :

  • CSI ?25h : แสดงเคอร์เซอร์
  • CSI n G : เลื่อนเคอร์เซอร์ไปที่คอลัมน์ n. (ไม่ใช่ ANSI.SYS)
  • CSI n K : ลบส่วนหนึ่งของบรรทัด ถ้า n เป็นศูนย์ (หรือหายไป) ให้ล้างจากเคอร์เซอร์จนถึงท้ายบรรทัด ถ้า n เป็นหนึ่งให้ล้างจากเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัด หาก n คือสองให้ล้างทั้งบรรทัด ตำแหน่งเคอร์เซอร์จะไม่เปลี่ยนแปลง
  • และอีกสองคนแรก
  • ^M : Carriage Return (ที่ส่วนท้ายของบรรทัด)

นี่คือการตรวจสอบสติขั้นพื้นฐานเพื่อให้แน่ใจว่าเทอร์มินัลพร้อมแล้ว อูบุนตูอาจส่งพวกเขาหลังจากการสอบถามจากสถานีท้องถิ่น


ว้าวขอบคุณสำหรับคำตอบ verbose
schemacs

ดังนั้นจึงไม่มีวิธีปิดใช้งานสิ่งนี้ยกเว้นการปิด -t หรือไม่ เหตุใด CentOS 6.2 ถึง CentOS 7.2 จึงแตกต่างกัน?
schemacs

ฉันไม่คิดอย่างนั้น การใช้ -T จะปิดใช้งานการจัดสรร TTY และดังนั้นจึงเป็นอักขระควบคุม หากคุณต้องการเพียงแค่เอาต์พุตจากคำสั่งไม่มีเหตุผลที่จะสร้าง TTY แบบรีโมต เพื่อค้นหาความแตกต่างมันอาจจะต้องดูในซอร์สโค้ดหรือดังนั้น ฉันไม่มีเครื่อง CentOS แถวนี้ (6.2 ล้าสมัยไปแล้ว)
Jakuje

ที่นี่ github.com/ansible/ansible/blob/v1.9.4-1/lib/ansible/runner/... จะคืนค่าพา ธ ชั่วคราวที่ไม่ถูกต้องและ github.com/ansible/ansible/blob/v1.9.4-1/lib/ansible/runner/... จะเพิ่ม -tt เมื่อ in_data ไม่มี
schemacs

ฉันได้ยื่นปัญหาที่นี่: github.com/ansible/ansible/issues/13677
schemacs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.