การดีบัก env vars จาก ssh


0

ฉันกำลังเขียนสคริปต์และแอปพลิเคชันสำหรับบอร์ดฝังตัวที่มี linux - no X คอนโซลเท่านั้น วิธีเดียวในการเข้าถึงเป้าหมายคือผ่าน ssh ฉันไม่ได้เชื่อมต่อจอภาพ

สคริปต์ควรส่งออก env vars สองสามตัวซึ่งจะถูกใช้โดยแอปพลิเคชัน ฉันรู้ว่าฉันต้องแหล่งสคริปต์เพื่อทำเช่นนี้ แต่ฉันมีปัญหาในการแก้ปัญหานี้เพราะฉันไม่ทราบวิธีการตรวจสอบว่าสคริปต์ทำงานจาก ssh

วิธีแก้ปัญหาเล็กน้อยคือ:

  • ทดสอบสคริปต์ในระบบอื่น
  • เรียกใช้แอพพลิเคชั่นการดีบักเพื่อตรวจสอบ env vars และพิมพ์ไฟล์
  • ฯลฯ ...

ฉันแค่สงสัยว่ามีวิธีที่จะใช้ ssh ทำสิ่งนี้ มันเป็นความอยากรู้อยากเห็นที่จะเรียนรู้สิ่งใหม่ ๆ การแก้ปัญหาเป็นที่รู้จักกัน!

ตัวอย่างของสคริปต์:

#!/bin/sh
export MY_VAR="blablabla"
exit 0

แน่นอนว่าสคริปต์ที่แท้จริงมีความซับซ้อนมากขึ้น

คำตอบ:


1

คุณไม่ได้ให้ตัวอย่างสคริปต์ของคุณดังนั้นจึงยากที่จะเข้าใจว่าคุณพยายามทำอะไร อย่างไรก็ตามคุณควรทราบว่าตัวแปรที่ส่งออกจะมองเห็นได้เฉพาะในเซสชั่น ssh ปัจจุบันและลูก ๆ ของมัน ตัวอย่างเช่น:

ssh -t user @ remotehost "export TEST = test && echo \ $ TEST" - เอาต์พุตคือ 'test'
ssh -t user @ remotehost "export TEST = ทดสอบ" && ssh -t user @ remotehost "echo \ $ TEST" - ouput ว่างเปล่า
หากคุณต้องการกำหนด vars ให้ทำอย่างถาวรใน. bashrc หรือ. bash_profile


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

สคริปต์ตั้งอยู่บนโฮสต์ต้นทางหรือบนโฮสต์ระยะไกลหรือไม่ คุณจะเรียกใช้มันได้อย่างไร
user1700494

สคริปต์ตั้งอยู่บนเป้าหมาย (โฮสต์ระยะไกล) แอปพลิเคชัน Qt5 C ++ จะเรียกใช้
ทำเครื่องหมาย

บางทีฉันอาจพบปัญหา ด้วยเหตุผลบางอย่างสคริปต์ซึ่งเป็นเป้าหมายจริงมี "exit 0" ในตอนท้าย (ฉันได้อัปเดตตัวอย่างเริ่มต้นสำหรับการเชื่อมโยงกัน) การเปิดตัวสคริปก็โอเค แต่การหามันทำให้ปิดเชลล์หรือการเชื่อมต่อ SSH - นี่คือคำถามของฉัน!
ทำเครื่องหมาย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.