コマンドは、Enterキーを押すことなく実行されます。これは時々危険かもしれません...
それはなぜですか、どうすればそれを防ぐことができますか?
改行文字を一緒に貼り付けるからです。たとえば、一度に多くのコマンド (長い複数行のスクリプト) をコピー/貼り付けできるなど、便利な場合があります。
ええと、この特定の動作を防ぐことは私には思いつきませんでした。それは正常であり、期待されています。WYPIWYG - 貼り付けたものが得られます。
1 つまたは複数の改行文字を貼り付けています。単に改行文字をコピーして貼り付けない以外に、これを回避するためにできることがいくつかあります。
1 行のコマンドの場合は、最初に「#」を入力すると、コマンドがコメント アウトされます。その後、戻って編集することができます。
bash の (一見あまり知られていない) edit-and-execute-command機能を使用します。CTRL-x
CTRL-e
emacs キーバインド (デフォルト)ESC v
を使用する場合、または vi キーバインドを使用する場合は、これを呼び出すことができます。これにより、現在のコマンドラインを含むテキスト エディターが呼び出されます。その後、エディターに貼り付けて、コマンドを編集できます。保存して終了すると、エディターによって保存されたコマンドが実行されます (中止する場合は、すべての行をコメントアウトするか、バッファーを完全にクリアします)。FCEDIT
またはEDITOR
環境変数を使用して、使用するエディターを設定できます。
実行を防ぐ簡単な方法は、コメント文字 # を入力してから、コマンドを貼り付けることです。
コピーするときに指を太くして余分な文字をつかむので、私はよくそうします。
コメント文字の後に貼り付けると、コマンドは履歴バッファーにあり、編集、コメント解除、および実行できます。
--- コメントに返信
そうです、これは単一行のコマンドでのみ機能します。クリップボードに複数行がある場合は、クリップボードのデータを sed 経由でパイプできます。
愚かな bash トリック # 400 万と 1:
prompt:$ xclip -o -selection clipboard | sed --regexp-extended 's/^(.*)$/# \1;/'
これをオンにします:
for i in *.JPG;
do echo mv $i ${i/.JPG/.jpg};
done;
これに:
# for i in *.JPG;
# do echo mv $i ${i/.JPG/.jpg};
# done;
これは本当に努力する価値はありませんが、ちょっと楽しいです;>