サブシェルとグループコマンドサブシェル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 |
|