回答:
自動実行をトリガーしているのは、コピーしているテキスト内の戻り文字です。
別の例を見てみましょう。これらの行を一度にコピーして、ターミナルに貼り付けます。
echo "Hello";
echo "World";
端末を見ると、これは表示されません。
$ echo "Hello";
echo "World";
これが表示されます(と言う行もありますWorld
):
$ echo "Hello";
Hello
$ echo "World";
すべての入力が貼り付けられるのを待つ代わりに、最初の行が実行されます(同じ理由で、2行目も貼り付けられる場合とされない場合があります)。これはRETURN
、2行の間に文字があるためです。
ENTER
キーボードのキーを押すと、ASCII値がの文字が送信されます13
。その文字は端末によってすぐに検出され、これまでに入力した内容を実行するための特別な指示があることがわかります。
コンピューターに保存するか、画面に印刷すると、RETURN
文字はアルファベット、数字、または記号の他の文字とまったく同じになります。この文字は、バックスペースで削除するか、他の通常の文字と同じようにクリップボードにコピーできます。
唯一の違いは、ブラウザが文字を見ると、表示されている文字を印刷する代わりに、異なる方法で処理する必要があることを認識し、次のテキストセットを次の行に移動する特別な指示があることです。RETURN
文字とSPACE
文字(ASCIIは32
)、いくつかの他のめったに使われない文字と一緒に、このような理由のための「非印字文字」として知られています。
Webサイトからテキストをコピーするときに、最後に戻るのではなくテキストのみをコピーするのが難しい場合があります(また、多くの場合、ページのスタイル設定により難しくなります)。
実験時間!
以下に、問題を説明し、「練習」できる2つのコマンドがあります。カーソルを直前に開始しecho
、ハイライトが矢印の直前になるまでドラッグします。
echo "Wait for my signal...";<- End cursor here right after the semicolon
そして、2番目のコマンドを試してください。カーソルを直前に開始し、カーソルecho
が2行目にあるが、<-
矢印の直前にあるまで下にドラッグします。コピーして、ターミナルに貼り付けます。
echo 'Go go go!';
<- End cursor here right before the arrow
ブラウザによっては、選択したテキストが2行を超えていることすら見えない場合があります。しかし、端末に貼り付けるとRETURN
、コピーされたテキストに文字が見つかったため、行が実行されることがわかります。
テキストを選択するときに、行の最後に(非表示の)改行を含めると、貼り付けられたテキストに含まれます。これは、私が知っているすべてのターミナルエミュレータで一貫しています。改行は、「検証」と呼んでいることを行います。
一部のシステム(IBM 3270などの同期端末を使用するシステムなど)では、Enterキーはすべての変更をホストにコピーすることで画面を「検証」します。
他の回答は質問によく答えましたが、WindowsでPuTTYを使用している場合、これが誤って発生しないようにする解決策も共有すると思いました-/server/731022/prevent-accidentalを参照してください詳細については、Linuxの場合のテキストの貼り付けテキストの1つのコマンドの実行。
{
貼り付ける前に(スペース付き)を入力し、で終わり}
ます。貼り付けられたコマンドの動作には影響しませんが、ブロックを閉じるまでシェルは実行できません。ここで説明する[ gnu.org/software/bash/manual/html_node/Command-Grouping.html]