これは私の最後の質問に対するややフォローアップです。ユーザー入力時に端末停止に複数のコマンドを貼り付ける
次を端末に貼り付けると、期待どおりに機能します。
(
echo test1
# some comment
echo test2
)
ただし、コマンドを繰り返すために上矢印を押すと、次のように間違ったコマンドが表示されます。
( echo test1 echo test2; )
コメントなしで同じ内容を貼り付けて上矢印を押すと、予想されるコマンドが表示されます。
(echo test1; echo test2)
簡単な回避策は、;
各行の前にコメントを追加することです。
ところで、なぜそうなのか?これはバグですか?
バッシュを使っています。動作はgnome-terminalとtilixで同じです。
答え1
問題は貼り付ける場所ではなく、貼り付ける場所です。また、Windowsを使用している場合、何がコピーされ、何が貼られているのかわかりません(スペース、奇妙な行末、xml形式、およびwin10でCP操作を困難にするすべて)。
端末で実行するためにコードを貼り付ける必要がある場合は、fc
これが最高の友達です。それがすることは、vimのようなエディタ(変数$EDITOR
で構成されています)を開き、最後のコマンドをフォーマットして終了時に実行できるようにすることです。これにより、実行する前に必要な内容を貼り付けて修正できます。これは、入力内容を整理するのにも役立ちます。前のコマンドをたくさん変更する必要がある場合に便利です。
コメントの誰かが言ったように、コードを端末に貼り付けて直接実行することは決して良い考えではなく、高価なエラーにつながる可能性があります。