Linuxコマンドのサブシェル()括弧わかりやすく

Linuxコマンドのサブシェル()括弧わかりやすく

サブシェルとはシェルプロンプトから(から)までに記述するコマンドの集まりのことです。

[ec2-user@humidai ~]$ pwd
/
[ec2-user@humidai ~]$ (cd /home/ec2-user/;vi test.json)
[ec2-user@humidai ~]$ pwd
/

サブシェル内のcd /home/ec2-user/でディレクトリ移動してからviコマンドでtest.jsonファイルを開いています。コマンドの間にセミコロンを入れます。

ファイルを閉じるとシェルプロンプトに戻り、pwdすると/となります。

()内で、cd /home/ec2-user/しているので、シェルプロンプトでカレントディレクトリが移動していそうですが、移動していません。

これはサブシェルの特徴として、シェルプロンプトには影響を与えないという点があります。

2重括弧でループして、ループ内でサブシェルを実行することなんかもできます。

[ec2-user@humidai ~]$ for((i=1;i<=5;i++))
> do
> (cd /home/ec2-user/; mkdir "test"$i)
> done

これでtest1,test2,…test5のディレクトリが作成されます。

サブシェルでシェルファイル実行

サブシェル内でシェルファイルを実行することなんかもできます。

[ec2-user@humidai ~]$(cd /home/ec2-user/;a.sh &)

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました