Tôi có tập lệnh shell sau. Mục đích là lặp qua từng dòng của tệp đích (có đường dẫn là tham số đầu vào của tập lệnh) và thực hiện công việc đối với từng dòng. Bây giờ, nó dường như chỉ hoạt động với dòng đầu tiên trong tệp đích và dừng lại sau khi dòng đó được xử lý. Có điều gì sai với kịch bản của tôi?
#!/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"
Trong do_work.sh, tôi chạy một vài sshlệnh.
sourcevà chỉ cần thoát ra hoặc exec. Nhưng mã này không giống chính hãng, OP sẽ nhận thấy tiếng vang mà yêu cầu -eđể thức ăn dòng hiển thị đúng cách ...
do_work.shchạy sshtheo bất kỳ cơ hội?
do_work.shnguồn và cũng chạy do.shvới set -xđể gỡ lỗi.