サブシェルとグループコマンドサブシェルcd $HOME ( cd /tmp ls -1 > files.txt ) pwd サブシェルは子プロセスのシェルで実行されるため、サブシェル内のcd等は元のシェルに影響しない。従って、上のスクリプトの最終行のpwdコマンドは$HOMEを出力する。 グループコマンドの結果をファイルへ出力 {
echo 1;
echo 2;
echo 3;
} > num.txt
グループコマンドを使わず同様にする場合echo 1 > num.txt echo 2 >> num.txt echo 3 >> num.txt サブシェルで同様にする場合( echo 1; echo 2; echo 3; ) > num.txt サブシェルとグループコマンドの違いグループコマンド内で環境変数を設定(更新)した場合、ブロックを抜けても設定が残る。 echo "### SUBSHELL"
( foo=1; )
echo "foo: $foo"
echo "### GROUPING"
{ bar=1; }
echo bar: $bar
上の結果が以下。 ### SUBSHELL foo: ### GROUPING bar: 1 |
|