ฉันพยายามเขียนฟังก์ชั่นทุบตีง่ายๆที่ใช้เป็นอาร์กิวเมนต์จำนวนไฟล์และ / หรือไดเรกทอรี มันควรจะ:
- มีคุณสมบัติชื่อไฟล์อย่างเต็มที่
- เรียงพวกเขา
- ลบรายการซ้ำ
- พิมพ์ทั้งหมดที่มีอยู่จริง
- ส่งคืนจำนวนไฟล์ที่ไม่มีอยู่
ฉันมีสคริปต์ที่เกือบจะทำในสิ่งที่ฉันต้องการ แต่ก็ล้มเหลวในการเรียงลำดับ ค่าส่งคืนของสคริปต์ตามที่ถูกต้อง แต่ผลลัพธ์ไม่ได้ (ไม่ได้เรียงลำดับและทำซ้ำ) ถ้าฉันบรรทัดเหล่า| sort -u
คำสั่งตามที่ระบุเอาท์พุทที่ถูกต้อง 0
แต่ค่าตอบแทนอยู่เสมอ
ยินดีต้อนรับโซลูชัน NB ที่เรียบง่ายในการแก้ปัญหา แต่เป็นคำถามเกี่ยวกับสาเหตุที่เกิดขึ้นในรหัสที่ฉันมี นั่นคือเหตุใดการเพิ่มไพพ์จึงดูเหมือนว่าจะหยุดสคริปต์ที่เพิ่มค่าตัวแปรr
?
นี่คือสคริปต์:
function uniqfile
{
local r=0
for arg in "$@"
do
readlink -e "$arg" || (( ++r ))
done #| sort -u ## remove that comment
return $r
}
for arg in "$@"
for arg
"ถ้า 'ใน WORDS ... ;' ไม่มีอยู่ดังนั้นจะถือว่า 'ใน "$ @"' " - ความช่วยเหลือสำหรับ