グループ化に関して中括弧の意味を理解しているかどうかはわかりません。一般()の使用で見られる唯一の違いは、{}がサブシェルではなく現在のシェルで実行されていることです。しかし、テストした結果、一般()とは異なり、{}内でデータ型を指定する方法があるようです。たとえば、次のことをテストしました。
$ {who}
bash: {who}: command not found
[john@pc ~]$
[john@pc ~]$ {who;}
bash: syntax error near unexpected token `}'
[john@pc ~]$ {who ;}
bash: syntax error near unexpected token `}'
[john@pc ~]$ { who ;}
john tty1 2022-11-30 14:51
明らかに{}を使用するにはいくつかの構造がありますが、オンラインや書籍でこれを説明するリソースを見つけることができません。誰でも私がこれを理解するのを助けることができますか?
ベストアンサー1
この{ }
文法の名前はグループ表現する。
それは違うサブシェル ( )
新しいシェルを作成します。
この構文には and の周囲にスペースが必要で、次に終わる必要があります{
。}
;
待ち行列次の表現:
{ grep user /etc/passwd | awk '1'; }
複数行式には必要ありません。
{
grep user /etc/passwd |
awk '1'
}
この構文は、複数のコマンドを単一のストリームに結合する便利な方法です。
{ cmd1; cmd2; cmd3; } | grep ...
おすすめリンク:
- http://mywiki.wooledge.org/BashGuide/CompoundCommands#Command_grouping
- https://www.gnu.org/software/bash/manual/bash.html#Command-Grouping
そうしないために支柱の拡張良い{1..9}