Score:0

วิธีทำให้ commad เป็นตัวแปรใน shell scrpit

ธง in

ฉันเขียนสคริปต์เพื่อตรวจสอบการออกจากไฟล์ จากนั้นตรวจสอบว่าไฟล์นั้นกำหนดบรรทัดหรือไม่ และสุดท้ายพิมพ์บรรทัดนั้น นี่คือนี่

#!user/bin/bash
เสียงสะท้อน "$1 $2"
ถ้า [ -e "$1" ]; แล้ว
    ถ้า [ "$(wc -l "$1")" -ge 1 ]; แล้ว
        sed -n "1p" "$1"
    ไฟ
ไฟ

แต่กลับเกิดข้อผิดพลาดเช่น หมายเลขที่ไม่ถูกต้อง: 3 /home/k/Documents/text.txt

คำถามของฉันคือทำอย่างไร wc -l "$1" เป็นตัวแปร?

Score:3
ธง hr

เอาต์พุตเริ่มต้นของ ไฟล์ wc -l รวมชื่อไฟล์และจำนวน

ไฟล์ $ wc -l
8 ไฟล์

คุณสามารถเปลี่ยนเส้นทางเนื้อหาไฟล์ไปที่ สุขา -l ผ่านสตรีมอินพุตมาตรฐานของเชลล์:

$ wc -l < ​​ไฟล์
8

ดังนั้น

ถ้า [ "$(wc -l < ​​"$1")" -ge 1 ]; แล้ว
    sed -n "1p" "$1"
ไฟ
in flag
ขอบคุณ มันได้ผล !!
Score:1
ธง tr
ash

เก็บเฉพาะฟิลด์แรกใน ห้องน้ำ เอาต์พุต Awk เป็นเครื่องมือที่ฉันโปรดปรานสำหรับสิ่งนั้น:

wc -l "$1" | awk '{ พิมพ์ $1 }'

ในการจับภาพสิ่งนี้ในตัวแปร:

COUNT="$(wc -l "$1" | awk '{พิมพ์ $1}')"
in flag
ขอบคุณสำหรับคำตอบของคุณ

โพสต์คำตอบ

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