nanoの変更が削除または保存されたことをどのように検出しますか?

nanoの変更が削除または保存されたことをどのように検出しますか?

私は現在、アプリケーションを起動する前にユーザーが構成ファイルを編集する必要があるLinuxアプリケーション用の簡単な設定スクリプトを作成しています。私はスクリプトがNanoで設定ファイルを開き、スクリプトを復元することを選択しました。ただし、ユーザーが変更を保存したか(それからアプリケーションを実行し続けたか)、またはユーザーが変更を放棄したか(ユーザーが続行したくないことを示す)かを検出する必要があります。

Nanoから返された終了コードでこれが可能かどうかを確認しましたが、明らかにそうではありません。変更が削除されても常に 0 を返します。ファイルが変更されたことを確認して保存する他の方法はありますか、それともまったく異なる方法でこれを行う必要がありますか?

ベストアンサー1

あなたはそれを使用することができます統計資料ファイルの前後の変更時間を表示するコマンドですnano。それは次のとおりです。

oldtime=`stat -c %Y "$filename"`
nano "$filename"

if [[ `stat -c %Y "$filename"` -gt $oldtime ]] ; then
  echo $filename has been modified
fi

もちろん、これはnanoファイルが変更されたか、他のプログラムがファイルを変更したかどうかを検出しませんが、機能と見なすことができます。 (他のプログラムを使用してファイルを編集した後、保存せずにnano終了できます。)

おすすめ記事