単純なbashgpg更新スクリプト

ジェフリー・レボウスキー

アカウントのパスワードやクレジットカードのPINなど、重要な個人データをすべて忘れてしまった場合に備えて保存するテキストファイルがあります。明らかに、そのファイルは暗号化する必要があるので、私はgpg(GNU Privacy Guard)に頼りました。

問題は、忘れたパスワードを回復するなどの読み取りだけでなく、新しいサイトで作成した新しいアカウントのパスワードを書き留めるなどの書き込みのためにも、ファイルを時々再度開かなければならないことです。次に、古いアーカイブを削除し、更新されたテキストファイルから新しいアーカイブを作成して、テキストファイルを削除する必要があります。

これらすべてを1つのアクションで実行する簡単なスクリプトを作成しましたが、今日、大きな欠陥が見つかりました。新しいパスワードの入力に失敗した場合(選択を繰り返すように求められたときに別の文字列を入力するなど)、アーカイブはgpgはエラーメッセージを表示するため、明らかに作成されませんが、スクリプトはさらに進んで、最初のアクションとして古いアーカイブをすでに削除している場合は、新しいテキストファイルを削除します。

スクリプトは実際には次のとおりです。

rm $ 1.gpg
gpg -c $ 1
rm $ 1

これを回避するにはどうすればよいですか。gpgエラーメッセージをカウントする制御サイクルに入り、問題が発生して新しいアーカイブが作成されなかったことを認識します。

最初の行を削除するだけでよいことはわかっていますが、アーカイブがすでに存在していることがわかっているので、上書きメッセージに毎回「はい」と答えるのは避けたいと思います。また、エラーが発生した場合は、古いアーカイブではなく更新されたテキストファイルを保持したいと思います。これは、ファイルをもう一度編集を繰り返して変更したくないためです(とにかく忘れてしまった可能性があります)。

ダニエルベック

gpgエラーが発生したときにゼロ以外の終了コードを返す場合は、それを確認できます。試すには、gpgコマンドを実行し、エラー状態を取得してから、(と仮定してbash)を入力しecho $?ます。出力がそうでない0場合、以下はrm、前のコマンド(この場合gpg)が成功した場合にのみ実行されます

if [[ $? -eq 0 ]] ; then
    rm "$1"
fi

または、テキストファイルの.gpg前にファイルが存在することを確認することもできrmます。

if [[ -f "$1.gpg" ]] ; then
    rm "$1"
else
    echo "$1.gpg not found, keeping the text file"
fi

もちろん、両方のアプローチを組み合わせて、gpg成功、他のファイルが存在することを確認することもできます。

変数の使用法を引用する必要があることに注意してください(例として私のコードを参照)。そうしないと、スクリプトは、スペースなどを含むファイル名で奇妙に動作します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

単純なSNTPpythonスクリプト

分類Dev

単純なexpectelseスクリプト

分類Dev

単純なbashスクリプト

分類Dev

単純なbashスクリプト

分類Dev

単純なSFTPスクリプト

分類Dev

単純なbashスクリプト用の単純なGUIの作成

分類Dev

単純なPythonスクリプトが機能しない

分類Dev

単純なbashスクリプトが機能しない

分類Dev

単純なAngularJSスクリプトが機能しない

分類Dev

単純なAHKスクリプトが機能しない

分類Dev

単純なbashスクリプトが機能しない

分類Dev

単純なjQueryスクリプトが機能しない

分類Dev

単純なスクリプトが機能しない

分類Dev

単純なbashスクリプトループ2変数

分類Dev

単純な bash スクリプトのヘルプが必要

分類Dev

非常に単純なupstartスクリプトの作成

分類Dev

単純なjQueryフォーム検証スクリプト

分類Dev

単純な「HelloWorld」スクリプトのEOFError

分類Dev

単純なVBスクリプトに問題がある

分類Dev

PSスクリプトの単純なログファイル?

分類Dev

Windowsでの単純な「SendTo」スクリプト

分類Dev

非常に単純なupstartスクリプトの作成

分類Dev

単純なsetuidバイナリエクスプロイト

分類Dev

単純なIf-Statemenet-バッチスクリプト

分類Dev

単純なbashスクリプトでのif句の実装

分類Dev

単純なVBスクリプトをMATLABに変換する

分類Dev

単純なbashスクリプトでさびた

分類Dev

単純なbashスクリプトのエラー-mv + awk

分類Dev

PHPの単純なwhoisスクリプトhtmlフォーム

Related 関連記事

ホットタグ

アーカイブ