tkuchikiの日記

Linux やプログラミングについて書きます。

shellscript

現在の shell を shellscript の中から確認する(Linux, BSD 両対応)

現在の shell(以下、current shell) を確認する方法として真っ先に思い浮かぶのは以下だと思います。 $ echo $SHELL /bin/bash ただ、これは不正解で、$SHELL はあくまでも login shell ですので、 login shell と current shell が違う場合は正しい値を返し…

Shellscript で指定回数ループするコードのベンチマーク

Shellscript で 指定回数ループする場合を調べていたら、 while でインクリメントしていくか、for in seq の2 パターンが見つかった。 どちらが高速なのか疑問に思ったのでベンチマークを取った。 while code #!/bin/sh i=0 while [ $i -ne 10000 ]; do i=`e…

シェルスクリプトの for で seq 以外の方法で指定回数ループを回す

シェルスクリプトで指定回数ループを回す方法をぐぐってみたところ、 上位の結果は以下の方法がヒットした。 for i in `seq 1 3`; do echo $i; done # 実行結果 1 2 3 これってブレース展開でもできるんじゃ? と思ってやったら、予想通りできた。 for i in …

while read でファイルを行読み込みして ssh をするシェルスクリプトの注意点

$ cat /tmp/hosts 192.168.0.10 192.168.0.11 192.168.0.12 のようなファイルがあったときに、 cat /tmp/hosts | while read _HOST; do ssh $_HOST "touch /tmp/testfile" done などして、複数のホストに ssh でつないでコマンドを実行しようとする。期待し…