全体として、メインシェル内で一連のコマンドを実行してみましたが、学んだ方法はサブシェルでのみ機能します。
ベストアンサー1
何を意味するかによって異なります全体的に。
複数のコマンドをシェルに送信し、そのコマンドをすべて入力するまでシェルでコマンドの実行を開始したくない場合は、次のようにします。
cmd1; cmd2
または
コマンド1Ctrl+VCtrl+Jコマンド2
(または角かっこ貼り付け(bind 'set enable-bracketed-paste on'
)を有効にし、角かっこ貼り付けをサポートする端末からコマンドを貼り付けます。)
または:
{
cmd1
cmd2
}
行にしてください。
たとえば、同じstdinまたはstdoutを共有するようにグループ化するには、次のようにします。
{ cmd1; cmd2; } < in > out
または
eval 'cmd1; cmd2' < in > out
bash
対応する匿名関数がないため、独自の変数とオプションの範囲で実行するにはzsh
一時関数を定義する必要があります。
f() { local var; var=foo; bar;}; f