Re: シェルで複数のコマンドを1個のコマンドのように扱う
複数のコマンドを1個のコマンドのように扱いたくて、シェル関数を書くほどのことでもないなら eval が便利。
evalで問題はないと思いますが、波括弧のほうがより意図に近いかと。
$ cat hoge.sh
#!/bin/sh
[ -z "$1" ] && { echo none; exit 1; }
echo processing $1
$ sh hoge.sh
none
$ sh hoge.sh something
processing something
POSIX準拠。Linux、Mac OS X、Cygwinで動作確認。
追記2008-12-01:
なぜ「evalで問題はないと思いますが」と入れたかというと、4.2BSDあたりでBourne Shellのシェルスクリプトを覚えたのかなと思ったので。その意味は単なる昔話なので略。
コメント
コメントの投稿
トラックバック
http://emasaka.blog65.fc2.com/tb.php/507-6c79a4b0
