今度こそ忘れないように使い方をまとめておく。
括弧「()」
別名:括弧、パーレン
サブシェルの呼び出しに使う。
サブシェル内の実行結果は、呼び出しとは異なるシェルプロセスで実行される。
複数のコマンドをサブシェル内で実行する場合はセミコロン「;」で連結させるが、最後のコマンドはセミコロン不要。
_VAR=aaa (_VAR=bbb; echo $_VAR) # bbbが表示される echo $_VAR # サブシェルの処理は受け継がれないのでaaaが表示される
角括弧「[]」
別名:ブラケット
一番よく使うのは、if文の中のtestコマンドの省略形。
「[」「]」それぞれの前後にスペースを入れないとシェルに怒られるので注意。
# test -e $fileと等価 if [ -e $file ]; then echo "file found" if
また、ファイル名のワイルドカードにも使われる。
#a.txt b.txt c.txt [abc].txt #1.txt 2.txt 3.txt [1-3].txt #先頭がアルファベット以外のファイル [^a-zA-Z] #先頭が数字以外のファイル [^0-9]*
波括弧「{}」
別名:ブレース
シェルスクリプト内で、変数を展開するのに使用する。
波括弧を付けないと、誤った変数を使用してしまう場合があるので、なるべく付けるようにする。
_a='hoge' _abc='fuga' echo $_abc #fugaが表示される echo ${_a}bc #hogebcが表示される
また、一連のコマンドをまとめる際にも使用する。サブシェルと異なり現在のシェルで処理が行われる。
波括弧とコマンドの間にスペースを入れないと文法エラーになるので注意。また、コマンドの末尾にセミコロン「;」が必要な点もサブシェルの書き方と異なる。
{ echo a; echo b; echo c; } > test.txt cat test.txt #3回分のechoの出力がまとめて書き込まれている a b c
波括弧はさらに、複数のファイルを指定するときにも利用できる。
波括弧の中は順番に展開されるので、mvやcpのコマンドでも使える。
#mydirの直下にあるtest1.txt test2.txtを開く cat mydir/test{1,2}.txt #test1.txtをtest2.txtに名前変更する mv test{1,2}.txt
ピンバック: シェルスクリプトでwhile文を使ってループ処理をする|ITエンジニアの馬テニス
ピンバック: シェルスクリプトでwhile文を使ってループ処理をする|クマの手も借りたい
ピンバック: 記号・演算子 [Bash] – Site-Builder.wiki
herf5q