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 ssh
lệnh.
source
và 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.sh
chạy ssh
theo bất kỳ cơ hội?
do_work.sh
nguồn và cũng chạy do.sh
với set -x
để gỡ lỗi.