・単純なCGIとして
・本格Webサイト開発言語として
・unixシェルの1コマンドとして
もうひとつはシェルスクリプトの代用としての使い方があるのでしょうか?
その場合利点は何がありますか?
bash,cshなとでスクリプトを組もうとしていますが、コマンドごとの動きが妙に違っていたり
全体の統一感の問題や、この場合はこれができないといった不思議な弱点が多いように思い
perlにしようかと思ってます。
そのへんアドバイスいただけたらと思います。
まず、cshはログインシェルで使うにはともかく、プログロラム言語としては不向きです。
何故不向きなのかは有名どころとしては
なぜ csh でプログラムを書くのが良くないのか
原題:"Csh Programming ConsideredHarmful,"
http://www.kiso.tsukuba.ac.jp/~makimura/text/node239.html
があるので、それを見て下さい。
さて、シェルスクリプトとしての代用としての使い方は「あり」です
というか、私は用途によってsh/perlは使い分けています。
向いている処理としては
文字列編集を多用している処理(特にshの中でawk/sedが多用されている)
向いていない処理としては
外部コマンドを多用している処理(一々system関数を呼ぶ必要がある)
# 個人的に「`」はコマンドが正常終了したか不明なので嫌い
あと、スクリプト全般に言えますが、あまり複雑なことをさせようとすると
必要以上にソースが汚くなってしまうのが悲しいですね。
もうひとつはシェルスクリプトの代用としての使い方があるのでしょうか?
もともと Perl の出自からしてそういう目的で作られた物だからねぇ。
sh, awk, sed あたりから文法持ってきてるから、記号が多くて嫌われやすい一因にはなってるし。
・単純なCGIとして
・本格Webサイト開発言語として
・unixシェルの1コマンドとして
向き不向きは別とすればこれらすべて shell スクリプトで実現する事も不可能ではない。
極論すれば shell スクリプトは外部コマンドを使用する事を前提として本体機能を押さえたスクリプト言語
という側面はあるから。
その上で大きな違いと言えば結局の所、1点に集約できる
高機能なコマンドがあればスクリプト自体は簡潔で済むが自身で実装しようとすると難易度が極端に上がる
外部コマンドの利用も出来るがあまり得意ではない。( まともに使うなら system じゃなくて fork と exec つかうけど面倒 )
後はどういう内容の事をやらせるか次第かな。
この場合はこれができないといった不思議な弱点が多いように思い
単にその shell の文法や適した外部コマンドを知らないだけの可能性もあるので何とも言い難いところ。
ぶっちゃけ shell スクリプト中に Perl のワンライナーがはいってても良いわけで「出来無い」って事は無いと思うんだけど。
ありがとうございます。
できないは言いすぎでしたね。
やりやすいかどうかだと思います。
ありがとうございます!
大変参考になります。
使い分けポイントもおっしゃるとおりだと思います。