本を読む

読書やコンピュータなどに関するメモ

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

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad