次のシェルスクリプトがあります。目的は、ターゲットファイルの各行(パスはスクリプトへの入力パラメーターです)をループして、各行に対して処理を行うことです。現在、ターゲットファイルの最初の行でのみ機能し、その行が処理された後に停止します。スクリプトに問題はありますか?
#!/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
。