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 あたりに色々と。
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が必要。
874 名前:login:Penguin mailto:sage [2009/02/23(月) 17:46:37 ID:8fvTtZVR] >>873 globstarが素敵
875 名前:login:Penguin mailto:sage [2009/02/23(月) 18:19:31 ID:0iVkUMQ3] ちったあ処理速度は速くなったのかね
876 名前:login:Penguin mailto:sage [2009/02/23(月) 23:46:13 ID:3cx/aS+U] >>874 find -name のショートカットか。
877 名前:login:Penguin mailto:sage [2009/02/24(火) 00:49:40 ID:A7QF/SS5] locateでいいんでないの?
878 名前:login:Penguin mailto:sage [2009/02/24(火) 08:32:50 ID:p4EZ+me2] locateは、必ずその前にupdatedbかけないと、正しい結果は得られない
879 名前:login:Penguin mailto:sage [2009/02/24(火) 10:05:02 ID:o4EbZdLy] locate使ったこと無いな /etc/cron.daily/slocate.cron は真っ先に消してしまうし。
880 名前:login:Penguin mailto:sage [2009/02/24(火) 14:05:08 ID:A7QF/SS5] updatedbのめんどくささがあってもlocateの速さは魅力
881 名前:login:Penguin mailto:sage [2009/02/24(火) 14:44:59 ID:ijmAhEc5] そんなあなたにinotify対応locate
882 名前:login:Penguin mailto:sage [2009/02/24(火) 18:05:43 ID:mkgOQJW+] ホームディレクトリ以下にある~/.thumbnails の中身を一括でjpgに変換して 容量を節約したいと思っているのですが、以下のスクリプト(convert-thumbnail2jpgl.sh)で convert-thumbnail2jpg.sh: 36: declare: not found と出てしまい、 変数width、heightが文字変数として扱われたままになってしまってif分岐ができません。 もしよろしければどなたか、不具合の原因をご指摘していただけると助かりますm(_ _)m #!/bin/sh find ./ -name "*.png" -print > /tmp/thumb-file-list #PNG画像ファイルをリストアップ for file in `cat /tmp/cache-file` #リストアップされたファイルから順に処理 do res=`expr $file : "\(.*\).png"` convert -background white -flatten $file $file imagescale=`identify $file | egrep -o '[[:digit:]]*x[[:digit:]]*\ '| tr -d "\ "` #ImageMagickを使って"幅x高さ"の書式で画像の大きさを取り出す declare -i width width=`echo -n $imagescale |sed 's/x.*//'` #"幅x高さ"から幅の部分のみを取り出す declare -i height height=`echo -n $imagescale |sed 's/.*x//'` #"幅x高さ"から高さの部分のみを取り出す if [ $width -lt 96 -o $height -lt 96];then #縦横いずれかが96ピクセル以下の画像はnautilus上でそのまま表示される mogrify -format jpg -quality 80 $file #PNGをJPGに変換 mv $res.jpg $res.png #拡張子をPNGに偽装し、本来あったPNGに上書き保存 else mogrify -resize 75% -format jpg -quality 80 $file mv $res.jpg $res.png fi done cat /tmp/thumb-file-list >> thumb-cache-file #(未着手)次回の変換時に偽装されたJPGを再エンコードしないように変換した分を記録
883 名前:login:Penguin mailto:sage [2009/02/24(火) 18:51:30 ID:0/zaoYuK] >>882 > find ./ -name "*.png" -print > ***/tmp/thumb-file-list*** #PNG画像ファイルをリストアップ > for file in `cat ***/tmp/cache-file***` #リストアップされたファイルから順に処理 読み込むファイルを間違ってるから for 文の file に何か別なものが入ってるかもしれない。 一行目を #!/bin/sh -x にするか $ sh -x convert-thumbnail2jpg.sh とかやって頑張れ。 > if [ $width -lt 96 -o $height -lt 96];then ] の前にスペースを入れないとエラーになるはず。 $ sh -x $ A=1 ; if [ "$A" = "1"]; then echo OK ; fi + A=1 + '[' 1 = '1]' sh: [: missing `]'
884 名前:882 mailto:sage [2009/02/24(火) 19:03:27 ID:mkgOQJW+] >> for file in `cat ***/tmp/cache-file***` #リストアップされたファイルから順に処理 >読み込むファイルを間違ってるから for 文の file に何か別なものが入ってるかもしれない。 恥ずかしい間違いをしてしまってすみません… 一時ファイルに自分用に適当なファイル名を付けてしまっていたので、 ここに投稿する際に勝手に変更してました(元スクリプトは両方共/tmp/cache-file) -xで内容が詳しく見られるようですね。もう少し頑張ってみます…
885 名前:882 mailto:sage [2009/02/24(火) 19:13:26 ID:mkgOQJW+] 1行目を #!/bin/bash にして、実行する際も$bash convert-thumbnail2jpg.sh と打つことで解決しました。 shではdeclareが使えず、bashでは使えるようです お騒がせして申し訳ありませんでしたm(_ _)m
886 名前:883 mailto:sage [2009/02/24(火) 20:34:08 ID:0/zaoYuK] >>884 > (元スクリプトは両方共/tmp/cache-file) スクリプトの中で何回か使うものなら cachefile="/tmp/cache-file" とかやって定義してしまったほうがいいと思う。
887 名前:882 mailto:sage [2009/02/25(水) 01:46:08 ID:TZfMttNn] >>886 おかげさまで無事完成しました ありがとうございましたm(_ _)m
888 名前:login:Penguin [2009/02/26(木) 17:54:06 ID:fuSH76wo] 関連スレ シェルスクリプトでGUI pc11.2ch.net/test/read.cgi/tech/1235483221/
889 名前:login:Penguin mailto:sage [2009/02/27(金) 02:01:52 ID:+MZ66A9I] bash4.0 導入した人誰かいまつか ? RHEL5.3 make で error orz...
890 名前:login:Penguin mailto:sage [2009/02/28(土) 00:15:37 ID:2KTcWABE] とりあえず使えてるぞ ubuntu8.10 GNU bash, version 4.0.0(1)-release (x86_64-unknown-linux-gnu) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <gnu.org/licenses/gpl.html>
891 名前:login:Penguin mailto:sage [2009/02/28(土) 00:25:54 ID:i9TaSY11] >>890 /bin/bash を置き換えたんですか?
892 名前:login:Penguin mailto:sage [2009/02/28(土) 00:31:49 ID:2KTcWABE] /usr/local/に置いただけ 俺には3.2と4.0の違いはあまり関係ないということがわかった
893 名前:login:Penguin mailto:sage [2009/02/28(土) 07:37:33 ID:zB5vZ6QQ] bashのバージョンに依存したスクリプトは趣味でやる以外はあんまり書かないと思うけど
894 名前:login:Penguin mailto:sage [2009/02/28(土) 11:00:16 ID:Tf6NC8nk] bashのバージョンに依存しないスクリプトって、ほぼ/bin/shか。
895 名前:login:Penguin [2009/03/01(日) 14:21:53 ID:b0tpnlkt] "A B C D E F"を "B A D C F E"にしたり、 A B C D E F を B A D C F E にしたりできますか? つまり、AとBを入れ替え、CとDを入れ替え・・・ってな具合です。
896 名前:login:Penguin mailto:sage [2009/03/01(日) 14:54:34 ID:yaPGqr8Y] >>895 宿題乙。 一行タイプのやつ sed -e 's/ /\ /g' | sed -e '1~2{h;d};1~2!G' | xargs 複数行タイプのやつ sed -e '1~2{h;d};1~2!G'
897 名前:login:Penguin mailto:sage [2009/03/01(日) 15:06:32 ID:ClVN3cK/] >>895 echo 'A B C D E F' | tr 'ABCDEF' 'BADCFE'
898 名前:login:Penguin mailto:sage [2009/03/01(日) 16:12:08 ID:jusYIGdM] bash3 とbash4 って互換性大丈夫でしょ。
899 名前:login:Penguin mailto:sage [2009/03/01(日) 16:45:01 ID:b0tpnlkt] >>896 >>897 素晴らしい!! 吹雪の最中に神が現れて、いきなり春になったような心境です。 ありがとうございました。
900 名前:login:Penguin [2009/03/05(木) 13:25:03 ID:k1KCKSK5] 原子番号を元素記号に変換してください。 例) 8 → O 26 → Fe 92 → U
901 名前:login:Penguin mailto:sage [2009/03/05(木) 15:44:08 ID:7EIm6RPk] >>900 宿題は自分でやれ。
902 名前:login:Penguin [2009/03/05(木) 15:55:50 ID:3/9eCgJO] まず原子番号とそれに対応する元素記号の テーブルを作成するところからはじめよう。
903 名前:login:Penguin [2009/03/05(木) 23:21:24 ID:BnKU6WpI] 水素なら w3m -dump ja.wikipedia.org/wiki/%E5%85%83%E7%B4%A0%E3%81%AE%E4%B8%80%E8%A6%A7 | awk '$1 ~ /^1$/{print $3} ヘリウムなら/^1$/を/^2$/に変える。
904 名前:login:Penguin mailto:sage [2009/03/05(木) 23:24:25 ID:feEdgCm8] echo O > 8 echo Fe > 26 echo U > 92 cat %1 俺天才かもしれん。
905 名前:login:Penguin mailto:sage [2009/03/05(木) 23:25:16 ID:feEdgCm8] 間違えた。。。 cat $1だ。
906 名前:login:Penguin mailto:sage [2009/03/05(木) 23:35:39 ID:BnKU6WpI] #!/bin/bash #grepバージョン w3m -dump ja.wikipedia.org/wiki/%E5%85%83%E7%B4%A0%E3%81%AE%E4%B8%80%E8%A6%A7 | grep "^"$1"[[:space:]]"
907 名前:login:Penguin mailto:sage [2009/03/06(金) 00:15:22 ID:4E0LodKQ] >>903 つ awk -v x=番号 '$1 ~ "^" x "$" { print $3 }'
908 名前:login:Penguin mailto:sage [2009/03/06(金) 02:41:09 ID:0+Otyqrv] 全部if文でやれ。
909 名前:login:Penguin mailto:sage [2009/03/06(金) 11:10:42 ID:Es9Fr0vK] w3m -dump ja.wikipedia.org/wiki/%E5%85%83%E7%B4%A0%E3%81%AE%E4%B8%80%E8%A6%A7 | perl -ane 'for (1..118) { print "$_: $F[2]\n" if $F[0]=~/^$_$/;}'
910 名前:login:Penguin mailto:sage [2009/03/06(金) 19:13:45 ID:m/0+PDHQ] 一覧表示でいいなら、これが楽だろ w3m -dump ja.wikipedia.org/wiki/%E5%85%83%E7%B4%A0%E3%81%AE%E4%B8%80%E8%A6%A7 | awk '/^[0-9]/{print $1,$3}'