Bash Tips
最近、短期間に大量のサーバに設定をいれるという仕事がたんまりきていて、とてもじゃないけど手作業なんてしんどいので、ちまちまと使い捨てスクリプトを書いて作業を楽にしてます。
そんな中『これは使える!』というスニペットを残しておきます。
seqコマンド
seqコマンドは順番で数字を出力するだけなんですが、使い勝手よくてちょくちょく使ってます。
$ seq 3 #1から3までの整数を出力 1 2 3 $ seq 2 5 # 2から5までの整数を出力 2 3 4 5 $ seq 4 2 8 # 4から2ずつ8まで出力 4 6 8 $ seq -w 5 100 # -wをつけると桁の幅を同じにできる 005 006 007 009 010 ... ... 100 $ seq -s " " 5 # -sで区切り文字を指定できる 1 2 3 4 5 $ seq -f "hoge%02g.log" 3 # 他の文字列と合わせて出力 hoge01.log hoge02.log hoge03.log $ for i in $(seq 3); do echo "do something"; done do something do something do something
source コマンド
bashでテンプレートエンジンもどきみたいなことをしたい時とかに使います。
#!/bin/sh string="Hello World!!" source test.txt
test.txt
cat << EOF <html> <head> This is a test. </head> <body> ${string} </body> </html> EOF
list fileの読み込み
リストファイルを一行ずつ読んで何かにしたい時に。
$ while read line do; echo ${line}; done < list.txt
配列に要素を追加する
array=() # 配列定義 array=(${array[@]} "fuga")
文字列置換
サーバをコピーして、中の設定ファイルを書き変えたい時に。
$ sed -i "s/hoge/fuga/g" /etc/hosts