- 1 名前:login:Penguin mailto:sage [2008/05/17(土) 13:44:57 ID:9hFWtCOD]
- UNIX板のスレを見ている方も多数おられるかと思いますが、
まあそれはそれとして、BASHウゼーとか言われる心配なく 平和にLINUX的スクリプト談義しましょうよ。 初めての自作スクリプト、自信ないから見てください。な初心者から トリッキーな技を駆使した作品を披露したい、蘊蓄を語りたい上級者まで いろいろな人に参加して頂けると嬉しいです。 perlやらPythonやらの話が混ざっても良いんでない? Part3 : pc11.2ch.net/test/read.cgi/linux/1184077033/ Part2 : pc11.2ch.net/test/read.cgi/linux/1154578200/ Part1 : pc8.2ch.net/test/read.cgi/linux/1121994321/ >>2-5あたりに色々と。
- 773 名前:login:Penguin mailto:sage [2009/01/12(月) 21:08:37 ID:nP3UaLlK]
- >>772
この十数年間、どちらも一度も使ったこと無いよ・・・
- 774 名前:login:Penguin mailto:sage [2009/01/13(火) 14:16:57 ID:7P3Od0Uu]
- a とか aaa とか 1,2,3とかだよね。
- 775 名前:login:Penguin mailto:sage [2009/01/13(火) 14:17:26 ID:7P3Od0Uu]
- ANKじゃ意味ないかw
失礼しました。
- 776 名前:login:Penguin [2009/01/13(火) 22:26:08 ID:N7X8IpyM]
- ttp://www.23ch.info/test/read.cgi/linux/1184077033/161
これって解決出来ないのでしょうか?
- 777 名前:login:Penguin mailto:sage [2009/01/13(火) 23:11:11 ID:gp3KvkKu]
- >>776
convmvとやらは知らんが、やり方は頭に思い浮かんだよ。 このスレの住人なら誰でも出来るでしょう。 「変換できないファイル」がどうなるのかだけははっきりしないけど。
- 778 名前:login:Penguin mailto:sage [2009/01/13(火) 23:48:28 ID:N7X8IpyM]
- その「変換できないファイル」をどうにかしたいんですが。
UTF-8からsjis。強引にsjis。
- 779 名前:login:Penguin mailto:sage [2009/01/13(火) 23:53:10 ID:gp3KvkKu]
- ちゃうわい。
「変換できないファイル」ってのをどうやって判断するかってことだ。
- 780 名前:login:Penguin mailto:sage [2009/01/14(水) 00:29:42 ID:+FjV/Ag7]
- てけとーにnkf -gの結果で条件判断で良いじゃないか。
- 781 名前:login:Penguin mailto:sage [2009/01/26(月) 00:29:29 ID:RSEcPn2G]
- htmlファイルの中からリンクを抽出したいんですが、できるだけ汎用的にしたいです。
<a href=xxxxxxx>を探す xxxxxxxを削り取る という感じだと思いますが、シェルでできますか?
- 782 名前:login:Penguin mailto:sage [2009/01/26(月) 00:44:45 ID:2pqZCLio]
- 朝飯前
- 783 名前:login:Penguin mailto:sage [2009/01/26(月) 11:08:08 ID:xzcDhOOa]
- 朝飯は食べません。
- 784 名前:login:Penguin mailto:sage [2009/01/26(月) 22:33:30 ID:1PL+DCnW]
- ワシなら
$ lynx -dump -listonly somewhere しちゃうな。
- 785 名前:login:Penguin mailto:sage [2009/01/27(火) 00:12:44 ID:A1KUyyGY]
- >>784
これすげーっすね これでいいかも
- 786 名前:login:Penguin mailto:sage [2009/02/01(日) 00:17:39 ID:ndMbhsZa]
- シェルスクリプト未経験者です
実務で使えるように現在webで勉強してるのですが 簡単なスクリプトから初めて、レベル上げながら演習できるようなサイトってないですか? 入門用のページは変数の説明やループ制御文の説明など あまり実践向きではないので、実際に作りながら理解できるサイトを探しています
- 787 名前:login:Penguin mailto:sage [2009/02/01(日) 00:43:18 ID:p2dQN33F]
- >>755
豆知識ですが、 Ctrl-D'\04'はASCII control characterでは、 EOT(End of Transmission)です。 元々通信向けの規格でしたから。
- 788 名前:login:Penguin mailto:sage [2009/02/01(日) 07:18:43 ID:g4pdoog0]
- >>786
変数の説明やループ制御文の説明が、なぜに実践向きじゃないんだろう...? 個人的には、実務で使えるように、なんて目的じゃさっぱりやる気出ず。 コレをつくりたい/つくらねばならない、てのがあれば、だと。
- 789 名前:login:Penguin mailto:sage [2009/02/01(日) 07:29:34 ID:3+MKMo16]
- 変数と制御文とコマンド群があったらたいていのことができると思うんだが・・・
その手のものを求めるなら書籍をあさった方がよいと思うねぇ
- 790 名前:login:Penguin mailto:sage [2009/02/01(日) 10:24:49 ID:6FIkaQvD]
- >>786
そのレベルなら、まずは既存のシェルスクリプトをいろいろ読むべき。 /usr/bin や /usr/sbin に file コマンドかければ結構な数が出てくるし、 Linuxなら /etc/init.d にデーモンのスタートアップがあるので、 これも参考になる。 まぁ、おれも、人に教えるための演習問題が欲しいとは思ってるのだが。
- 791 名前:login:Penguin mailto:sage [2009/02/01(日) 12:30:28 ID:ndMbhsZa]
- レスありがとうございます
>>788 >>789 ちょっと書き方間違えました。 「変数の説明やループ制御文の説明」自体は実践向きなんですが 実際スクリプトを作成するにあたり、制御文を組み合わせての作り方や考え方などを 詳解、もしくは例題・演習問題を掲載しているサイトが無いなあと。 つまり、「変数の説明やループ制御文の説明」を理解したあとスクリプトを作成するにあたり 手本になるサイトが欲しかったのです。 >>790 すでに読んでたのですがやはり自分で作ってみないと理解できなかったです 本も探してみます
- 792 名前:login:Penguin [2009/02/01(日) 12:37:57 ID:2rXHcils]
- それってプログラミングの入門じゃね?
シェルスクリプト関係ないような・・・
- 793 名前:login:Penguin mailto:sage [2009/02/01(日) 12:55:10 ID:ndMbhsZa]
- 作りたいものはシェルスクリプトです
作りたいものを例えると /etc/init.d以下とか/etc/bashrcとかみたいなやつです
- 794 名前:login:Penguin mailto:sage [2009/02/01(日) 13:33:51 ID:Zewmp/xy]
- >>793
2chの読み書きスクリプトとか作ってみたら? けっこう勉強になった。 シェルスクリプトって極論すると、Cとかで書いた他のプログラムを 組み合わせて動かすための言語だと思う。 ようは、シェルスクリプト単体で何かできるってもんじゃない。 「変数の説明やループ制御文の説明」の次はもう何もないんじゃないかな? 基礎の次は、他のプログラムをいかに組み合わせて動かすかって話になると思う。 例えば/etc/init.d以下のスクリプトは、極論すると別のデーモンプログラムを 適当な引数与えて動かすためだけのスクリプトだよ。 2chの読み書きスクリプトは、curlとawk、sed、grep、iconv組み合わせれば書けた。
- 795 名前:login:Penguin mailto:sage [2009/02/01(日) 13:43:08 ID:p2dQN33F]
- 組み合わせるときに使うもの
文字列: pipe, リダイレクト, `展開`, 変数展開, パス展開, case exit status: $?, if/while, wait/$!
- 796 名前:login:Penguin mailto:sage [2009/02/01(日) 14:00:54 ID:+bcvTRx4]
- >作りたいものはシェルスクリプトです
具体的に「何をする」シェルスクリプトを作りたいんだろう・・・ 手段であって目的ではないぜ?普通は。
- 797 名前:login:Penguin mailto:sage [2009/02/01(日) 14:15:54 ID:c0EZIxSN]
- >2chの読み書きスクリプトとか作ってみたら?
>けっこう勉強になった。 面白そう。うpして。
- 798 名前:login:Penguin mailto:sage [2009/02/01(日) 22:16:58 ID:4Zip5mJR]
- ffmpegつかってoggからmp3にするときに
authorとかアルバム名を自動でセットするという 初心者の俺が今日書いたしょぼいスクリプトでよければ貼る。
- 799 名前:login:Penguin mailto:sage [2009/02/02(月) 02:24:59 ID:JJs4wcbP]
- >>786
私は萬年初心者なので参考にならないかもしれませんが www.tldp.org/LDP/abs/html/ www.mogami-wire.co.jp/unix/
- 800 名前:login:Penguin mailto:sage [2009/02/02(月) 02:30:06 ID:fWzEZ9ea]
- >>798
- 801 名前:login:Penguin mailto:sage [2009/02/02(月) 02:30:41 ID:fWzEZ9ea]
- >>798
面白そう。うpして。
- 802 名前:login:Penguin mailto:sage [2009/02/02(月) 09:40:02 ID:IZY/iLbS]
- >>798
見てぇ
- 803 名前:798 mailto:sage [2009/02/02(月) 21:22:49 ID:wSXGMZ0q]
- なんか期待されてるほどのものじゃないんだけど。
ほとんど初めて書いたのでこのスレの中の人的には物足りなかったり、 ツッコミどころ満載かもしれない。 #!/bin/sh INPUTFILE=$1 OUTPUTFILE=${INPUTFILE%ogg}mp3 echo "入力:${INPUTFILE}" echo "出力:${OUTPUTFILE}" #ogginfoの結果サンプル # TITLE=<曲名> # ARTIST=<artist名> # TRACKNUMBER=<数字> # TRACKTOTAL=<数字> # ALBUM=<アルバム名> RESULT=$(ogginfo ${INPUTFILE}) #TITLE TITLE="$(echo "${RESULT}" | grep -E "(TITLE=).*?$")" TITLE=\"${TITLE# TITLE=}\" echo "TITLE::${TITLE}" #作者 ARTIST="$(echo "${RESULT}" | grep -E "(ARTIST=).*?$")" ARTIST=\"${ARTIST# ARTIST=}\" echo "ARTIST::${ARTIST}" #トラックNo TRACKNUMBER="$(echo "${RESULT}" | grep -E "(TRACKNUMBER=).*?$")" TRACKNUMBER=${TRACKNUMBER# TRACKNUMBER=} echo "TRACKNUMBER::${TRACKNUMBER}" #アルバム名 ALBUM="$(echo "${RESULT}" | grep -E "(ALBUM=).*?$")" ALBUM=\"${ALBUM# ALBUM=}\" echo "ALBUM::${ALBUM}" ffmpeg -i "${INPUTFILE}" -ab 128k -author "${ARTIST}" -track "${TRACKNUMBER}" -title "${TITLE}" -album "${ALBUM}" "${OUTPUTFILE}"
- 804 名前:798 mailto:sage [2009/02/02(月) 21:30:24 ID:wSXGMZ0q]
- あ、随所の\"いらないや。
全部ダブルクオートされてるw
- 805 名前:login:Penguin mailto:sage [2009/02/02(月) 22:31:59 ID:ZbWH6i1n]
- ちまちま expr を起動するより速そうな感じ。
- 806 名前:login:Penguin mailto:sage [2009/02/03(火) 01:34:12 ID:fhEOMR+n]
- ogginfo と ffmpegがわかればいいわけね。
- 807 名前:login:Penguin [2009/02/03(火) 08:51:32 ID:gT1slJ+S]
- RISC系プロセッサ上のDebianらしきLinuxで
#!/bin/bash ... setsid /bin/bash -c "tail -f ./journal | grep KEY >> ./log" & sid=$! ... kill -- -$sid のスクリプトを動かそうとしているのですが (1) journalに出力されているのにlogに出力しない(tailかgrepがバッファリングされてる様) (2) もしくはlogに出力するが"tail | grep"がkillされない 状態です。何が悪いんでしょう? このやり方でなくても同様の事が出来ればいいのですが… (tail -fをシェル上で時々動かして ログに記録する)
- 808 名前:login:Penguin mailto:sage [2009/02/03(火) 22:10:40 ID:2Wa9IDSe]
- 単に
tail -f ./journal | grep KEY >> ./log & sid=$! ではマズいんですか?
- 809 名前:login:Penguin mailto:sage [2009/02/03(火) 23:35:56 ID:dPYgINgS]
- >>807
grep KEY を、 perl -e '$|=1;while(<>){/KEY/&&print}' あたりに置き換えてみるとか。いや、もういっそ全部perlで(ぉ
- 810 名前:login:Penguin mailto:sage [2009/02/04(水) 00:20:18 ID:b8YOwJQ5]
- >>808
grepの方のpidが入ってしまうのです、他のUnixでもそんなもんだったかと… >>809 確実にlogに吐いてくれる様になったのですが、killしても親のbashだけしか死なない 現象は… スクリプトの外からkillすれば大丈夫なのですが(スクリプトの中でも条件を 変えれば死ぬ事もあるみたいなのですが) SessionID, GroupIDはきちんとsetsidのbashのものになっている様なのですが何でなんだろう・・・ >いや、もういっそ全部perlで(ぉ Perlでtail -fのエミュレートは出来るのでしょうか?(Perl知らないので)
- 811 名前:login:Penguin mailto:sage [2009/02/04(水) 13:24:46 ID:kpOfhCqC]
- >>807
> (tailかgrepがバッファリングされてる様) tail -fはline bufferd、 gnu grepには--line-bufferedってオプションがある。 >>810 tailだけsetsidするんじゃ駄目なの? > grepの方のpidが入ってしまうのです SIGPIPEでtailは終了するから、grepだけ終了すればいいんじゃないの?
- 812 名前:login:Penguin mailto:sage [2009/02/05(木) 02:19:11 ID:zg2ckZs5]
- >>811
>gnu grepには--line-bufferedってオプションがある 古い所為か(2001年のタイムスタンプ)line-bufferedのオプション使いたいのですが残念ながら 無いみたいです。上で教えて頂いたperlの文でも入力バッファの問題は回避できる様です >tailだけsetsidするんじゃ駄目なの? grepの方も同じsid, gidにしたいので… >SIGPIPEでtailは終了するから、grepだけ終了すればいいんじゃないの? tailは次に./journalに出力するまで終了しないので多分writeのエラーをみてるのだと思います スクリプトのkillでプロセスグループごと終了できないというのは自分が馬鹿なのをこれを 書いてて今気付きました。 (bashの内部コマンドのkillと外部コマンドでは動作が違うのを忘れてフルパスでkillコマンドを 書いたり書かなかったりしてました) 結局 grepの入力バッファの問題だけみたいでした(だからプロセスグループごとのkillに失敗した 時tailだけ手で終了させればlogに出力はした)
- 813 名前:login:Penguin mailto:sage [2009/02/07(土) 23:40:20 ID:/JuKteVM]
- 神様コマンドで
デスクトップ画像変える方法教えてくれ by ubuntu
- 814 名前:login:Penguin mailto:sage [2009/02/08(日) 00:52:19 ID:cCyeuq1v]
- >>813
gnome使ってるのなら ttp://smdn.invisiblefulmoon.net/linux/tips/gnome/change_wallpaper/ でどうだろうか?
- 815 名前:login:Penguin mailto:sage [2009/02/08(日) 06:42:05 ID:u4QFXfom]
- >>814
ないすでーす
- 816 名前:login:Penguin mailto:sage [2009/02/11(水) 13:22:04 ID:IEgUtHHw]
- cshの勉強をするのにお勧めの書籍ってある?
- 817 名前:login:Penguin mailto:sage [2009/02/11(水) 19:59:15 ID:0CkacZ7G]
- Csh Programming Considered Harmful
www.faqs.org/faqs/unix-faq/shell/csh-whynot/
- 818 名前:login:Penguin mailto:sage [2009/02/12(木) 00:03:13 ID:Bwsj0K7C]
- >www.faqs.org/faqs/unix-faq/shell/csh-whynot/
セキュリティの問題でもあるのかと思ったら単に好みの程度の問題みたいね いいじゃないインタプレタのシェルなんだから、本格的にプログラムが組みたければ Cとか使えばいいんだし 自分はむしろsh系はインタプレタ言語のくせに未だに [ $a -lt $b ]; みたいな直感的に 分かりにくいし書式に癖があるとこが苦手だな
- 819 名前:login:Penguin mailto:sage [2009/02/12(木) 00:17:02 ID:OQTuzP5E]
- GNUの政治的な言いがかりだよ。Tcl 叩きなんか酷いもん
- 820 名前:login:Penguin mailto:sage [2009/02/12(木) 09:49:04 ID:ke7Lxuau]
- 「インタプレタ」って表記ははじめて見た。
- 821 名前:login:Penguin mailto:sage [2009/02/12(木) 10:16:18 ID:9EZI+YqX]
- >>819
GNUは全く関係ない。 GNU出来る前から、cshはプログラム書くもんじゃないという話は定番。
- 822 名前:login:Penguin mailto:sage [2009/02/12(木) 10:57:48 ID:tCfZqJn3]
- bashで十分。
他にもあるかもしれないが、bashを極めた方が 得るものは多いのでわと。 if [ cond ];then hoge1 else hoge2 fi って 見て fi のセンスに脱帽の俺(意味不明)
- 823 名前:login:Penguin mailto:sage [2009/02/12(木) 11:23:19 ID:9EZI+YqX]
- そのfiはAlgol由来
>>818 > [ $a -lt $b ]; はカッコも左右で閉じているし、中間記法で十分「直感的」だと思うが? もしかしたら、() や < を使わないのは、「習慣的」でないと言いたいのかな? [ より ( なんてのは「直感」とはまるで関係がない。
- 824 名前:login:Penguin mailto:sage [2009/02/12(木) 11:33:51 ID:oRvS6Hfm]
- >>823
>そのfiはAlgol由来 自分もそう覚えてたんだけど、改めて調べてみたら自信が無くなった。 この コードサンプルによると構文は if then begin end なんだけどね。 en.wikipedia.org/wiki/ALGOL#Code_sample_.28ALGOL_60.29 まあ、Algolって方言多いからどこかであったのかも。
- 825 名前:login:Penguin mailto:sage [2009/02/12(木) 11:38:51 ID:oRvS6Hfm]
- 自己解決。 Algol 68の構文か。 60と68でこんなに劇的に構文が違うなんてびっくり。
en.wikipedia.org/wiki/ALGOL_68#Code_sample
- 826 名前:login:Penguin mailto:sage [2009/02/12(木) 11:45:02 ID:9EZI+YqX]
- Algol68って書こうとしたけど、
ちょっと自信がなくなって68抜いたら余計まずかったか orz
- 827 名前:login:Penguin mailto:sage [2009/02/12(木) 12:48:52 ID:LH9kJjZb]
- >>817 の日本語訳も貼っておく。
これってかなり有名だと思うんだけど、最近の人は知らないのかな? www.kiso.tsukuba.ac.jp/~makimura/text/node239.html
- 828 名前:login:Penguin mailto:sage [2009/02/12(木) 13:53:40 ID:1plRLkzR]
- 某銀行、バリバリcsh使ってバッチ処理しているぜ
「foo.cshを流します」ってメールがしょっちゅう飛んでくる (bar.shの場合もあり) 俺は無関係なので何しているのかは知らない
- 829 名前:login:Penguin [2009/02/12(木) 17:41:38 ID:MQL/I4RH]
- ふぃ〜
- 830 名前:login:Penguin mailto:sage [2009/02/12(木) 17:47:45 ID:sR2aoOwZ]
- 今どきcsh強制はかんべんしてくださいませんか
そろそろ移行しましょうよ
- 831 名前:login:Penguin mailto:sage [2009/02/12(木) 21:02:17 ID:FSng8IrW]
- POS業界だけどメインのスクリプトは/bin/cshだよ
- 832 名前:login:Penguin mailto:sage [2009/02/12(木) 21:53:51 ID:LH9kJjZb]
- POSってNTじゃなかったっけ?
- 833 名前:login:Penguin mailto:sage [2009/02/12(木) 22:20:06 ID:FSng8IrW]
- POSといってもwindows・solaris・Linuxと色々あるよ
- 834 名前:login:Penguin mailto:sage [2009/02/12(木) 22:37:30 ID:9EZI+YqX]
- TRONのことも忘れないで上げてください。
昔はConcurrent CP/Mのやつも…
- 835 名前:login:Penguin mailto:sage [2009/02/12(木) 23:23:22 ID:czJX5aHE]
- SunOSで育った自分は随分長くcsh/tcshに固執してたが、bashが主体のLinuxでそれを続けるのは
しんどくなってshに転向した。 慣れるとやっぱりshスクリプトの方が可搬性が高くて便利ではあるね。
- 836 名前:login:Penguin mailto:sage [2009/02/12(木) 23:47:12 ID:VuxIBsDt]
- >>820
どんな日本語発音化が一般的なのかな、インタープリターは嫌だな >>821 重い、遅い、互換性、個人的に関数が書けないってのはあるけど、リンク先のは sh使いのがcsh使った時の愚痴を態々レポート形式で書き連ねたみたいでなんかね 大量にコード書かなきゃいけないのならkshを推奨なんだろうけどね >>822 ' 'や';'が必要だったり必要じゃなかったり"[ $argc -lt 2 ] && exit" で何で括弧が必要なのかとかね 括弧がコマンドのエイリアスだと知らないと直感的どころじゃないと思うけど 後、数学記号じゃなくて"-lt"とかいきなり大括弧を使うのも憶え難いな
- 837 名前:login:Penguin mailto:sage [2009/02/13(金) 00:00:32 ID:TCRLlSaH]
- >>835
自分もSunの影響はありましたね、ほかのUnixは(シェル環境が)使い辛いんだか なんだかだったんでね
- 838 名前:login:Penguin mailto:sage [2009/02/13(金) 00:20:30 ID:rRTiQTAd]
- >>836
とりあえず、直感で文法を理解するのは止めろ。獣じゃないんだから。
- 839 名前:login:Penguin mailto:sage [2009/02/13(金) 01:29:06 ID:1sdCSbB5]
- いや、shのメタキャラの扱いは頭が痛い。ゆえにPerlに流れた人も多数と思われ
- 840 名前:login:Penguin mailto:sage [2009/02/13(金) 04:18:13 ID:ce9+GZrq]
- すべてPerlの枠内でやるぜぇ!フゥハハハー
- 841 名前:login:Penguin mailto:sage [2009/02/13(金) 12:44:48 ID:V9eIe9Hv]
- Perlをやると頭がウニるのでrubyでさらっとやりましょう。
- 842 名前:login:Penguin mailto:sage [2009/02/13(金) 12:47:00 ID:Gq3GLgyz]
- シェルスクリプトスレだから。
- 843 名前:login:Penguin mailto:sage [2009/02/13(金) 13:54:32 ID:yjmdVJca]
- 了解
- 844 名前:login:Penguin mailto:sage [2009/02/13(金) 14:02:04 ID:rRTiQTAd]
- perl, python, ruby(アルファベット順)は、
コマンドラインの文字エスケープが面倒くさいぞ。 コマンドラインを直接扱えるshは、shならではの便利さがある。
- 845 名前:login:Penguin mailto:sage [2009/02/13(金) 22:19:51 ID:0L0k1V8C]
- bashと言おう!
- 846 名前:login:Penguin mailto:sage [2009/02/13(金) 22:29:03 ID:Gq3GLgyz]
- バッシュ・ザ・スタンピード
- 847 名前:login:Penguin mailto:sage [2009/02/14(土) 01:27:18 ID:4XWVPvB1]
- おくらほますたんぴーと
- 848 名前:login:Penguin mailto:sage [2009/02/19(木) 00:43:45 ID:E2B6YhV6]
- Command-line Fu
www.commandlinefu.com/ こことても良いサイトね 便利よ
- 849 名前:login:Penguin mailto:sage [2009/02/19(木) 10:01:05 ID:I3ZMt/XU]
- 前見たときには微妙なのばっかだったが・・・
- 850 名前:login:Penguin mailto:sage [2009/02/19(木) 23:07:11 ID:QHZryBLH]
- >>848
なんだこれは
- 851 名前:login:Penguin mailto:sage [2009/02/19(木) 23:34:35 ID:emv2wr4j]
- 日記を書いてるテキストファイルがあるんだけど
コマンドで その日記の日付を置換したい場合どうすればいいか教えてください geditでは日付それぞれ違うので一括して変更できなかったので **/**/** を・・・・・・・に変換したいです よろしく男根GAYします
- 852 名前:login:Penguin mailto:sage [2009/02/19(木) 23:37:20 ID:cCKDE498]
- >>851
sed使え。
- 853 名前:login:Penguin mailto:sage [2009/02/19(木) 23:49:02 ID:emv2wr4j]
- >>852
ありがトン
- 854 名前:login:Penguin mailto:sage [2009/02/20(金) 00:42:21 ID:myUOwbMU]
- bashとshでどう違います?
shだと export hoge=FUgfdsa とかできない 配列が使えない くらいは知ってるんですが
- 855 名前:login:Penguin mailto:sage [2009/02/20(金) 00:49:54 ID:XTIEtF8Q]
- 古いシェルのことを考えたら切りがないよ
www.bookshelf.jp/texi/autoconf-ja/autoconf-ja_10.html /bin/shを名乗るならPOSIX sh準拠でいてほしいね
- 856 名前:login:Penguin mailto:sage [2009/02/20(金) 00:56:59 ID:+4QiWBsa]
- >>854
いろいろ違うがshの種類によってもさらに違うので一概には言えない。 おかげで、GNU autotools は恐しく涙ぐましい努力をしている。 詳しくは「移植性 シェルスクリプト」あたりでぐぐれ。
- 857 名前:login:Penguin mailto:sage [2009/02/20(金) 01:42:32 ID:slfVamAC]
- >>854
以下のスクリプトを test-cdpath.sh として保存する。 --------- #!/bin/sh # #!/bin/bash echo "mkdir -p hoge/foo" mkdir -p hoge/foo pwd cd hoge pwd cd foo pwd exit ---------- $ export CDPATH="/usr/src" $ ./test-cdpath.sh
- 858 名前:login:Penguin mailto:sage [2009/02/20(金) 11:19:48 ID:UmU5RxVP]
- >>854
自分で比較してみれば heirloom.sourceforge.net/sh.html
- 859 名前:login:Penguin mailto:sage [2009/02/22(日) 23:16:28 ID:+4BXOJtP]
- 自分は普段kshを使ってプログラムを作っています。
ただ自己学習の一環として他のshもやってみようと思い、 cshの本をとりあえず買ってきました。 内容はアルゴリズム特集のようなもので入門書ではないです。そこそこむずかしめ。 ただウィキペディアで見るとcshは現在ほとんど使われて無いとか。 本当でしょうか?無駄金使ってしまいましたかね? 幸い業務で使うわけではないので勉強すれば役に少しは立ちそうですが・・。
- 860 名前:login:Penguin mailto:sage [2009/02/22(日) 23:23:52 ID:yH/Zc28c]
- >>859
うちの会社はcshのが多いわけだが。hp-uxとかsolarisとか。aixはどうだっけ?
- 861 名前:login:Penguin mailto:sage [2009/02/22(日) 23:27:29 ID:i9kTRR2X]
- >>859
> ただウィキペディアで見るとcshは現在ほとんど使われて無いとか。 > 本当でしょうか?無駄金使ってしまいましたかね? 本当です!(><) 「cshスクリプト使うのはよくないよ〜(considered harmful)」って文書があるくらい。
- 862 名前:login:Penguin mailto:sage [2009/02/22(日) 23:30:07 ID:+4BXOJtP]
- >>860>>861
ありがとうございます。 使ってるところもあるけどあまり推奨されては居ないみたいなんですね。 とりあえずアルゴリズム集っぽい本なので表面的に理解して ざっと勉強してみるくらいはしてみようかと思います。
- 863 名前:login:Penguin mailto:sage [2009/02/23(月) 00:01:25 ID:02TkTA5B]
- cshとbashの違いってちょっと方言が違う〜くらいでないの?
forがforeachとか あんまりしらないけど
- 864 名前:login:Penguin mailto:sage [2009/02/23(月) 00:42:30 ID:/AxKX1aI]
- cshとtcshはどう地がうんすか?
- 865 名前:login:Penguin mailto:sage [2009/02/23(月) 01:44:47 ID:Abtbk8hJ]
- cshに知恵がついたのがtcsh。
もはや両方とも過去の遺物。ログインシェルとしては現役だが、 スクリプトでcsh使うのはCOBOLerを名乗るような感じで奇異の目で 見られるのは避けられない。
- 866 名前:login:Penguin mailto:sage [2009/02/23(月) 01:46:15 ID:RMEIkcBQ]
- つーかcshはUNIXの話だろ。
linuxはbash
- 867 名前:login:Penguin mailto:sage [2009/02/23(月) 02:08:49 ID:Pbes3ogj]
- >>864
最近はcshは単にtcshへのシンボリックリンクというシステムが 多いんじゃないかな? Solarisは最近はどうなのかな?
- 868 名前:login:Penguin mailto:sage [2009/02/23(月) 08:25:23 ID:c65f34nn]
- >>866
>linuxはbash なんだよ、それ。
- 869 名前:login:Penguin mailto:sage [2009/02/23(月) 11:12:11 ID:KfjF9GSX]
- bash
OpenSolaris,mac,linux ksh Solaris
- 870 名前:login:Penguin mailto:sage [2009/02/23(月) 11:29:59 ID:KfjF9GSX]
- たまに、SolarisとかHP-UX使ってる輩が、linux系のシェルスクリプトの質問で
そのスクリプト動かないんですが、なんて質問してるバカがいる で、OSきくと、SolarisとかHP-UXだったりする あなたのはshellはなんですか?なんて逆質問されたりする
- 871 名前:login:Penguin mailto:sage [2009/02/23(月) 11:42:17 ID:0iVkUMQ3]
- sh: HP-UX
csh: IRIX bash: OpenSolaris, Mac OS X ksh: AIX, Solaris
- 872 名前:login:Penguin mailto:sage [2009/02/23(月) 16:32:54 ID:/AxKX1aI]
- いやsolarisはcshですよ
- 873 名前:login:Penguin [2009/02/23(月) 17:41:46 ID:YasG1lnX]
- 久々のメジャーアップデート、定番シェル「bash」が4.0に
ttp://journal.mycom.co.jp/news/2009/02/23/031/index.html GNUプロジェクトは20日 (米国時間)、コマンドラインシェル「bash 4.0」を リリースした。多くのUNIX系OSに対応したソースコードは、ライセンスにGNU GPLv3を適用、GNUプロジェクトのFTPサイトや各地のミラーサイト経由で配布 される。 2004年7月以来4年7ヶ月ぶりのメジャーアップデートとなる今回のリリースでは、 zshライクな機能を追加。ディレクトリ名を入力するだけでカレントディレクトリ を変更できる「autocd」、サブディレクトリを再帰的にファイル検索する「globstar」、 入力補完時にディレクトリ名のスペルミスを修正する「dirspell」などのオプションが 新設された。 新しいリダイレクト演算子として「&>>」を追加、標準出力 (>>) と標準エラー出力 (2>&1) を結合したデータをファイルにアウトプットすることが可能になった。case構文中のコマンド 区切り文字として「;&」および「;;&」を追加、いわゆるフォールスルーが実現されている。 bashのラインエディット機能を担うライブラリ「GNU readline」もアップデート、メジャー バージョンのv6.0としてリリースされた。変数「history-size」の定義により履歴の最大数が 設定できるようになるなど、いくつかの変更が加えられている。bash 4.0のビルドには、ソース コードに同梱されるreadline 6.0が必要。
|

|