web-dev-qa-db-ja.com

複数行のbashコードを端末に貼り付けて一度に実行するにはどうすればよいですか?

複数行のbashコードを端末に貼り付ける必要がありますが、貼り付けるとすぐに、各行が個別のコマンドとして実行されます。

71
Nathan

\コピーする前に各行の終わりに。

74
opsguy

私はこの答えがここに提供されていないことに本当に驚いています、私はこの質問の解決策を探していましたが、これが最も簡単なアプローチであり、より柔軟/寛容であると思います...

1行あたりのコマンド、関数、またはスクリプト全体に関係なく、Webサイト/テストエディターなどから複数の行をbashに貼り付ける場合は、単に(で始まり、 )およびEnter、次の例のように:

次のブロブがあった場合

function hello {
    echo Hello!
}
hello

次の方法で、bashを使用して端末に貼り付けて確認できます。

1)(で始まる

2)テキストを貼り付けて、Enterキーを押します(見やすくするため)。

3))で終わり、Enterを押す

例:

iMac:~ home$ ( function hello {
>     echo Hello!
> }
> hello
> )
Hello!
iMac:~ home$ 

貼り付けられたテキストは、各行に>を追加して自動的に継続されます。 1行あたりのコマンド、関数、およびスクリプト全体を使用して、複数の行でテストしました。これが他の人の時間節約に役立つことを願っています!

29
TryTryAgain

C-x C-eを定義したデフォルトのエディターを開く.bashrcコマンドを押すと、その後、エディターのすべての強力な機能を使用できます。保存して終了すると、行は入力を待機します。

エディターを定義したい場合は、Exに書くだけです。 EDITOR=emacs -nwまたはEDITOR=vi内の~/.bashrc

26
itirazimvar

バックスラッシュに加えて、行が|または&&または||で終わる場合、次の行に続きます。

14
glenn jackman

行の周りに括弧を追加します。例:

$ (
Sudo apt-get update
dokku apps
dokku ps:stop APP # repeat to shut down each running app
Sudo apt-get install -qq -y dokku herokuish sshcommand plugn
dokku ps:rebuildall # rebuilds all applications
)
8
abrkn

別の可能性:

bash << EOF
echo "Hello"
echo "World"
EOF
4
Lenar Hoyt

テキストファイル内のコマンドの長い行を防ぐために、次のようなコピーフェーズスニペットを保持します。

echo a;\
echo b;\
echo c
2
nvd

iTermは複数行のコマンドを完全に処理し、複数行のコマンドを1つのコマンドとして保存してから、Cmd + Shift +を使用できます。履歴をナビゲートします。 iTermを効果的に使用する で、iTermのその他のヒントを確認してください。

0
jeffery.yuan

この方法を試してください:

echo $( 
    cmd1
    cmd2
    ...
)
0
voltento