tkhrsskの日記

技術ネタなど

bash芸

bashで連番処理やxargsのメモ。

連番の表示

まずはbashのブレース展開

$ echo {0..10}
0 1 2 3 4 5 6 7 8 9 10

seqコマンド

$ seq 0 10
0
1
2
3
4
5
6
7
8
9
10

0埋め

bash v4以降だと下記で可能。bash v3以下は未対応

$ echo {01..10}
01 02 03 04 05 06 07 08 09 10

seqコマンド

$ seq -w 0 10
00
01
02
03
04
05
06
07
08
09
10

ループ処理

for i in {0..10}
do
  echo $i
done
for i in `seq 1 10`
do
  echo $i
done

xargsによる並列化

echo {0..10} | xargs -n 3 -P 2 echo

-nで一度に渡す引数の数を指定 -Pで並列で実行するプロセス数を指定

シェルの引数デフォルト値

引数が指定されていなかった場合のデフォルト値指定、2パターン。

env_name=dev
if [ -n $1 ]; then
  env_name=$1
fi
env_name=${1:-dev}

ショートカットキー

www.na3.jp