いくつかのファイルを編集するためのシェル スクリプトを作成しようとしています。
私はこのようにやっています:
/usr/bin/vim $file
今、私はvimの終了ステータスを尋ねたい. ユーザーが変更を保存して閉じた場合は何か (:wq または :x)、変更せずに閉じた場合 (:q, :q!) は別のことを行います。
if [ vi-exit-status=wq ] ; then
# do this
else # vi didn't save anything
# do that
fi
どうやってやるの?vi を呼び出して新しいファイルを作成し、保存せずに終了すると (:q!)、次の方法でステータスを確認します
echo $?
答えは 0 です。何かを保存したり、vi/vim でファイルを作成したりすると、それも 0 になります。
敬具