複数行のbashコードをターミナルに貼り付ける必要がありますが、貼り付けるたびに、各行が個別のコマンドとして実行されます。
回答:
この回答がここに提示されていないことに本当に驚いています。この質問の解決策を探していました。これが最も簡単なアプローチであり、より柔軟で寛容だと思います...
ウェブサイト/テキストエディターなどから複数の行をbashに貼り付けたい場合は、それが行ごとのコマンドであるか、関数またはスクリプト全体であるかに関係なく...単にa (
で始まり、)
のような、と入力します次の例では:
次のブロブがあった場合
function hello {
echo Hello!
}
hello
次の方法でbashを使用してターミナルに貼り付けて確認できます。
で始まります (
テキストを貼り付けて、Enterキーを押す(見栄えを良くするため)...
a )
で終わり、Enterキーを押す
例:
imac:~ home$ ( function hello {
> echo Hello!
> }
> hello
> )
Hello!
imac:~ home$
貼り付けられたテキストは>
、各行の先頭に自動的に追加されます。私は複数の行でテストしました。1行あたりのコマンド、関数、スクリプト全体を使用しています。これが他の人の時間の節約に役立つことを願っています!
C-x C-e
を定義したデフォルトのエディターを開くコマンドを押すと.bashrc
、その後、エディターのすべての強力な機能を使用できます。保存して終了すると、行は入力を待ちます。
エディタを定義したい場合は、Exを記述してください。EDITOR=emacs -nw
またはEDITOR=vi
内部~/.bashrc
emacs
とvi
doで)実行する必要があり、コマンドを保存して終了すると即座に実行されます。
バックスラッシュに加えて、行が|
or &&
または||
で終わる場合、次の行に継続されます。
行を括弧で囲みます。例:
$ (
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
)
(
括弧のように、括弧{
は上記の例でも同じように機能することに注意してください
iTermは複数行のコマンドを完全に処理し、複数行のコマンドを1つのコマンドとして保存します。その後、Cmd
+ Shift
+ ;
を使用して履歴をナビゲートできます。
iTermを効果的に使用する でiTermのヒントを確認する
試す
out=$(cat)
次に、行を貼り付けて、Ctrl-D(EOF文字を挿入)を押します。Ctrl-Dまでのすべての入力は、猫の標準出力にリダイレクトされます。
$ out=$(cat) && eval "$out"
。最後の行の後にEnterキーを押し、次に上記のようにCTRL + Dを押します。