ฉันมีเชลล์สคริปต์ต่อไปนี้ จุดประสงค์คือเพื่อวนผ่านแต่ละบรรทัดของไฟล์เป้าหมาย (ซึ่งพา ธ เป็นพารามิเตอร์อินพุตไปยังสคริปต์) และทำงานกับแต่ละบรรทัด ตอนนี้ดูเหมือนว่าจะใช้ได้เฉพาะกับบรรทัดแรกในไฟล์เป้าหมายและหยุดหลังจากที่บรรทัดนั้นได้รับการประมวลผล มีอะไรผิดปกติกับสคริปต์ของฉันหรือไม่?
#!/bin/bash
# SCRIPT: do.sh
# PURPOSE: loop thru the targets
FILENAME=$1
count=0
echo "proceed with $FILENAME"
while read LINE; do
let count++
echo "$count $LINE"
sh ./do_work.sh $LINE
done < $FILENAME
echo "\ntotal $count targets"
ในdo_work.sh
ฉันเรียกใช้ssh
คำสั่งสองสามคำสั่ง
source
exec
แต่รหัสนี้ดูไม่เป็นของแท้ OP จะสังเกตว่าเสียงสะท้อนต้องใช้-e
เพื่อแสดงฟีดบรรทัดอย่างถูกต้อง ...
do_work.sh
ทำงานssh
โดยบังเอิญหรือไม่?
do_work.sh
แหล่งที่มาและยังใช้do.sh
กับset -x
การแก้ปัญหา