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 &)
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント