Snippets

sironekotoro 一定時間だけパスワードをクリップボードに貼り付け、時間が経過すると元の内容に書き戻す君(OSコマンドインジェクション対応)

You are viewing an old version of this snippet. View the current version.
Revised by sironekotoro a3f17eb
#!/usr/bin/env perl
use strict;
use warnings;

# mac os用
# 1.実行時のクリップボードの中身を指定した文字列に書き換え
# 2.一定時間経過すると、クリップボードの中身を元に戻す

# クリップボードの中身を書き換える時間
my $time = 10;

# パスフレーズ
my $key = 'otsu';

# 入力を促すメッセージ
print "パスフレーズを入力してください > ";

# 標準入力を受け取り
my $input = <STDIN>;

# 改行を削る
chomp $input;

# 入力文字列が正しいか、間違っているかを
# if文の文字列比較で判定
if ( $input eq $key ) {

 # クリップボードの内容を、スカラー変数に取り込み
 # `` バッククォートで囲まれたものは、OSのターミナルで
 # 実行するコマンド。
 # 実行した後の結果をスカラー変数$clipbordに代入している
    my $clipbord = `pbpaste`;

    print $clipbord;

    # 一時的にクリップボード上で書き換える文字列
    my $string = "お疲れ様です";

    # 文字列をクリップボードに設定する
    system("echo $string | pbcopy");

    # カウントダウン
    for my $t ( 1 .. $time ) {
        sleep 1;
        print $time - $t, "\n";
    }

    # 指定の秒数待ち終わったら元の文字列を
    # クリップボードに設定する
    system("echo '$clipbord' | pbcopy");

}
else {
    # 入力した文字列が異なって入ればエラー
    print "error\n";
}
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.