業務である本番サーバーと検証サーバーの一部ファイルについて、差分を洗い出す必要があり、
 合計60ファイル以上もあるので、一個ずつ見て行くのは流石に怠い!
 なので、ちょっとしたバッチを書いて洗い出すことにしました。
普通に下記のようにwhile文で書いたら、なぜか一行目のファイルしか読まない!
#/bin/bash
listfile=$1
remote=$3
cat ${listfile} | while read line
do
  diff $line <(ssh ${remote} cat $line) >> $2
done何故だ!!!
 色々調べた結果、SSH接続後にreadを行ったうえでループを抜けることが判明!
 じゃあ、while文を諦めてforでSSH接続する前に全部読み取ろう
#/bin/bash
listfile=$1
remote=$3
for line in `cat ${listfile}`
do
  diff $line <(ssh ${remote} cat $line) >> $2
doneうまくいきましたね!
 よし!次はローカルとリモートサーバーのファイル存在確認も足そう
ローカルのファイル存在確認
if [ -e 絶対パス ]; then #ファイルあり else #ファイルなし fi
リモートサーバーのファイル存在確認
if [ `ssh リモートサーバー test -e 絶対パス; echo \$?` = "0" ]; then #ファイルあり else #ファイルなし fi
そして、完成版はこちら↓
#/bin/bash
#第1引数:差分ファイルリストパス
#第2引数:差分結果出力ファイル
#第3引数:リモートサーバー
listfile=$1
remote=$3
for line in `cat ${listfile}`
do
  echo "-------------------------------------------------------------------------------------------------------------------------" >> $2
  echo "対象ファイル:"$line >> $2
  if [ -e $line ]; then
    if [ `ssh ${remote} test -e $line; echo \$?` = "0" ]; then
      diff $line <(ssh ${remote} cat $line) >> $2
    else
      echo ${remote}"に該当ファイルが存在しません" >> $2
    fi
  else
    echo $HOSTNAME"に該当ファイルが存在しません" >> $2
  fi
done
