Score:-2

วิธีเขียนเชลล์สคริปต์สำหรับพิมพ์ PID และ The owner และ Name of the Process โดยใช้ตัวแปรพิเศษ $$ เป็นพารามิเตอร์สำหรับสคริปต์

ธง my

สคริปต์จะแสดงคำสั่ง pstree -hsup $$. ฉันลองหลายวิธีแล้ว แต่ไม่พบวิธีพิมพ์ผลลัพธ์เช่นนี้

28348 (ทุบตี, รูท)
28347 (su,ราก)
28346 (sudo ราก)
14085 (ทุบตีผู้ใช้)
14083 (lxterminal ผู้ใช้)
    1 (ระบบ,รูท)
tm flag
บางอย่างเช่น ``pstree -hsupA $$ | tr -d '\n' | sed 's/-[+-]-\| *[`|]-/\n/g'``? ผลลัพธ์ควรจัดเรียงอย่างไร
Flowless Man avatar
my flag
ควรเรียงลำดับจากกระบวนการใหม่ล่าสุดไปยังกระบวนการที่เก่าที่สุดรวมถึงชื่อเจ้าของและในเชลล์สคริปต์ฉันไม่สามารถใช้คำสั่ง pstree ได้ ฉันแค่ต้องการพิมพ์กระบวนการจากเชลล์ปัจจุบันเช่น (./shell.sh $ $) ควรพิมพ์กระบวนการและ PID และเจ้าของด้วยวิธีนี้ PID (ชื่อ,เจ้าของ)
Score:2
ธง tm

ps -o ppid จะส่งออก pid ของกระบวนการพาเรนต์ ดังนั้น ให้เริ่มด้วย pid ปัจจุบัน แล้วขอพาเรนต์ จากนั้นหาพาเรนต์ของมัน และอื่นๆ

#! /ถัง/ทุบตี
pid = $1
ในขณะที่ ((pid)); ทำ
    ps -h -o 'pid,comm,euser' $pid \
        | sed -E 's/^( *[0-9]+ )([^ ]+) *([^ ]+)/\1(\2,\3)/'
    pid=$(ps -h -o ppid $pid)
เสร็จแล้ว

คุณต้องการส่งออก pid คำสั่งและผู้ใช้ที่มีประสิทธิภาพ (หรือผู้ใช้จริง?) ระบุใน -o และใช้ เสด เพื่อฟอร์แมตเอาต์พุตใหม่ ที่นี่ เราจับสตริงที่ไม่ใช่ช่องว่างสามสตริงและใส่วงเล็บและเครื่องหมายจุลภาคเมื่อจำเป็น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา