タイトル: スカラー変数内での bash パラメーターの展開
2 つのファイル間の差分を実行する bash スクリプトがあります。diff がある場合は、statement1 と statement2 を出力します。長いので変数に入れますが、echo ステートメントはパラメーターを展開しません。これはbashで実行できますか?
#!/bin/bash
set -x
source="/home/casper"
target="data/scripts"
statement1="There is a change in ${i}, please check the file"
statement2="or cp /home/casper/${i} /data/scripts/$i"
for i in file1 file2l file3 file4 file5 ; do
sleep 1 ;
if diff $source/$i $target/$i 2>&1 > /dev/null ; then
echo " "
else
echo "$statement1 "
echo "$statement2 "
fi
done
exit 0
スクリプトは機能しているようです-必要なときに差分を見つけます。ただし、これは出力されるものです。
There is a change in , please check the file
or cp /home/casper/ data/scripts/
言ってもらいたい
There is a change in file2, please check the file
or cp /home/casper/file2 /data/scripts/file2