getoptsの使い方例
ある雑誌に載っていた小さいシェルスクリプトだが、getoptsの使い方の例として素晴らしいのでここにメモしておく。
Usage: topless [-sh?]
top(1)のようにコマンドを一定間隔で実行する
#!/bin/sh waitsec=1 while getopts s:h option ; do #※1 getoptsの基本的な使い方 case "$option" in s) waitsec=$OPTARG ;; h|\?) echo "topless [-s sec] command..." exit 0 ;; esac done shift $(($OPTIND - 1)) case $# in #※2 /bin/shスクリプトではifよりcaseの方が速い 0) echo "you need a command to do" exit 1 ;; esac clear while : ; do echo -n "^[[1;1H" count=1 $@ | while IFS= read line ; do #※3 awkを使うよりwhile IFS= read lineの方が速い echo "$count $line" count=$((1 + $count)) done sleep $waitsec done