サブシェル

Yuya Sato 20views 更新:2016年8月24日

コマンドを()で括ることによって、元のシェルは子プロセスを生成しサブシェルとしてコマンドを実行することができます。 サブシェルは子プロセスとして実行されるので親の環境変数などを変更したくない時など様々な使用法があります。

一時的に環境変数を変更する

サブシェル内では環境変数をenにし、親シェルはそのままにできます。

$ (LANG=en; man 1 printf)

telnetコマンドを実行する

telnetなどの対話型コマンドもサブシェルを使うとワンライナーで実行することが出来ます。

( sleep 1;  echo "EHLO localhost";
sleep 1;    echo "MAIL FROM: ${FROM}";
sleep 1;    echo "RCPT TO: ${RCPT}";
sleep 1;    echo "DATA";
sleep 1;    echo "TESTMAIL";
sleep 1;    echo ".";
sleep 1;    echo "quit";
) | telnet "$SERVER" 25

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません