使っていて, アプリケーションが存在するかしないかを調べるオプションが欲しかったので書き直したのだ.
"
-s
" がそのためのオプションである.使用方法は
mykill [ -s ] <application-name>
となる. たとえばメモアプリ (アプリケーション名は Notes) に対して "
-s
" オプションを使うと
$ mykill -s notes
1084 /Applications/Notes.app/Contents/MacOS/Notes
と表示されて終わる.
オプション無しでアプリケーション名のみを指定するとそのアプリケーションを停止する.
$ mykill notes
Terminated: 15
$ mykill -s notes # Check if the specified application was killed or not.
ところで今回, manpage の
getopt(1)
を読んで初めて知ったのだが /usr/local/share/getopt/
というディレクトリーがあって, ここに getopt
の bash と tcsh のサンプルが置いてある.手元の Mac にも入っていた. MacPorts でインストールされていたのだ.
役に立った.
オプションの解析は適当で完全ではない. しかしとりあえず iPhone の iTerminal アプリから使ってみてどうするか考える.
2018 年 4 月 19 日: 修正
たまたま見直してみたらスクリプトのコードが古いものだった.
getopt(1)
を導入する前のものになっていたのだ.getopt(1)
を使ったスクリプトのコードに入れ換えた.
#!/bin/sh
usage="usage: `basename $0` [ -s ]"
cmd=`basename $0`
proc=""
args=`getopt s: $*`
eval set -- "$args"
while true; do
case $1 in
-s)
proc="$2"
shift 2
ps -e | grep -i $proc | grep -v grep | grep -v $cmd |
awk '{ printf("%s\t%s\n", $1, $4); }'
exit $?
;;
--)
shift
break
;;
*)
echo $usage
exit 1
;;
esac
done
proc="$1"
kill `ps -e | grep -i $proc | grep -v grep | awk '{ print $1 }'`
exit $?
【このカテゴリーの最新記事】
- no image
- no image
- no image
- no image
- no image