0

タイトルが言うように。ファイルをバックアップしてから回復できるようにする必要があります。

バックアップを作成するのは非常に簡単でした

 if [ "$bup" = "true" ]; then
     cp $file $file.bak

しかし、回復することは..それほど前向きではありませんでした。

 elif [ "$rup" = "true" ]; then
     bak=`find /path/to/file/ | grep .bak`
     cp $bak ${bak/\.bak}
 fi

それはbashで動作しますが、shで動作するために必要です。

4

2 に答える 2

1

bash シェルのパラメーター展開は、sh では機能しません。これを試して:

elif [ "$rup" = "true" ]; then
   bak=`find /path/to/file/ | grep .bak`
   orig=`echo $bak | sed 's/\.bak$//'`
   cp $bak $orig
fi

複数の .bak ファイルを処理する場合は、find 出力にループを追加することを忘れないでください。

于 2010-09-09T11:30:03.707 に答える
0

正規表現バリアントの代わりに部分文字列処理を使用します。

orig=${bak%.bak}
于 2010-09-09T12:02:59.527 に答える