- 1 名前:デフォルトの名無しさん [2005/04/04(月) 03:43:03 ]
- シェルスクリプトに関する質問・回答や議論等を行う相談室スレッド。
- 2 名前:デフォルトの名無しさん mailto:sage [2005/04/04(月) 04:03:33 ]
- 2
- 3 名前:デフォルトの名無しさん mailto:sage [2005/04/04(月) 05:08:16 ]
- お楽しみいただいた当スレッドもただいまをもちまして終了いたします。
1112553783 シェルスクリプト相談室です。
- 4 名前:デフォルトの名無しさん mailto:sage [2005/04/04(月) 06:04:38 ]
- 連番エロCGをスクリプトで一発ダウンの俺様が4様GETですよと。
最近本気で自動巡回も作ろうかと思案中です。チェックするのもマンドクセ。
- 5 名前:デフォルトの名無しさん mailto:sage [2005/04/04(月) 09:52:54 ]
- UNIX板逝けよ
- 6 名前:デフォルトの名無しさん [2005/04/04(月) 10:29:05 ]
- >>5
シェルスクリプトはunixだけじゃないぞ
- 7 名前:デフォルトの名無しさん [2005/04/04(月) 12:16:13 ]
- いまだにcshを使っていますが何か?
- 8 名前:デフォルトの名無しさん [2005/04/04(月) 15:47:53 ]
- cshじゃなくて今のトレンドは何ですか?
- 9 名前:デフォルトの名無しさん mailto:sage [2005/04/04(月) 15:49:05 ]
- bash
- 10 名前:デフォルトの名無しさん mailto:sage [2005/04/04(月) 15:49:12 ]
- bash
- 11 名前:デフォルトの名無しさん mailto:sage [2005/04/04(月) 15:52:03 ]
- ,,..--―-、
/, -----、.ヽ, / ̄ ̄ ̄ ̄ ̄ ̄ ̄ | i_,,,,_ __゙l | | bash! ,!、i'゙-‐-: '-、|/ / ______ /'') ..., '‐-‐、.j  ̄ ̄ / ,‐!::...`'''''''`ノ _,,,l ;! ::|ヽ、二 イ , -‐'゙゛ i::.. | .ヽ/;ヽj!`‐-、_ l ノ::. .:|、 .ヽ,:ヽ| <゛~ヽ、 ⌒ ⌒ ⌒ _⌒ ⌒ ⌒__ /:::::Λ_Λ:::::::::::::::/ /::::::(∩;´Д`)∩ :::::/ /:::::::( >>1 /::::/ チャラッチャラッチャーン
- 12 名前:デフォルトの名無しさん mailto:sage [2005/04/04(月) 19:11:51 ]
- ワロタ
- 13 名前:デフォルトの名無しさん [2005/04/05(火) 00:48:46 ]
- dsh
- 14 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 02:00:34 ]
- >>7「ところで海原先生、UNIXにはシェルが欠かせませんが、いったいどんなシェルが一番流行なんでしょうか?」
>>8「それは私も知りたいですな!シェルを極め尽くした海原先生なら、その答えをお出しになれるんじゃないでしょうか!」 海原「さよう‥どれが一番二番と順位はつけられんが、五本の指に入るものをあげると‥」 「まずBourne Shell、それもXPG4のBourne Shellだな」 「csh、ksh、tcsh、ash、まあ、このあたりが間違いのない本道というところだが‥」 「gnuのbashは別格だし、debianのbash、dashも面白い。emacsをシェルで使うのも捨てがたいな」 >>9「なるほど、どれもこれも聞いただけでよだれが出そうですわい」 >>10「しかし同じシェルでもピンからキリまであるようで、海原先生は何でも飛び切り上等のシェルを使っておられるからなあ」 山杉「お若い方などはいかがです、どんなシェルがお好きですかな?」 山岡「今まで使ったshellの中ではzshが一番使いやすかった‥」 山杉「は?zsh?」 山岡「そうzsh」 海原「うわあっはっはっはっは!」 「だからシェルのわからぬUnixヲタだと言うんだッ、zshだと、馬鹿も休み休み言え!」 山岡「と言うからには、使ったことはあるんだろうな」 海原「誰がそんなシェルを使うか、無駄な機能だらけのシェルなど使ったら、10分で済む事が1時間かかるわ!」 >>11「まったく聞いただけでジンマシンが出ますよ」 >>12「最高のシェルを聞いているときにzshなんて、気分がだいなしよ」 >>13「Unixヲタは哀れなもんだ」 海原「いい恥さらしだな、自分の特殊な趣味をさらしおって!」
- 15 名前:デフォルトの名無しさん [2005/04/05(火) 03:11:24 BE:91214093- ]
- zsh
- 16 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 11:54:16 ]
- zsh って実は Windows 版もあるんだよな(Cygwin ではなく)。
- 17 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 15:54:28 ]
- シェルスクリプトならbsh、プロンプトならcshの方がいいなぁ。
- 18 名前:デフォルトの名無しさん mailto:sage [2005/04/05(火) 17:03:48 ]
- >>14
確かに鯖の話だな bash以外シェル使った記憶ねぇな
- 19 名前:デフォルトの名無しさん [2005/04/09(土) 10:09:37 ]
- >>14
面白いぞ! 久々に和炉他
- 20 名前:デフォルトの名無しさん mailto:sage [2005/04/09(土) 10:14:10 ]
- >>14
ということは幻のzshとか出てくるのか?
- 21 名前:デフォルトの名無しさん [2005/04/10(日) 05:29:46 ]
- ls > /dev/null
の> /dev/nullってどういう効能があるのですか?
- 22 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 05:58:09 BE:67566454- ]
- シェルが fork(2) して 標準出力を /dev/null に dup(2) して ls(1) を exec(2) してる
- 23 名前:デフォルトの名無しさん [2005/04/10(日) 06:17:35 ]
- さっぱりわからないのですが
- 24 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 06:37:15 ]
- 各コマンドを調べりゃいいだろ
- 25 名前:デフォルトの名無しさん mailto:sage [2005/04/10(日) 09:55:50 ]
- システムコールをコマンドと言っちゃう奴って
- 26 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 00:22:14 ]
- 田畑「国際シェル会議ですって!?」
花村「何なのよそれ!」 ブラック「文字通りシェルに関する色々な問題を国際的なレベルで検討しようとする会でして‥」 花村「シェルに関する問題って何よ?」 ブラック「ですから例えば、bashとzshとどちらがいいかとか‥」 花村「そんな問題を大勢集まって議論する訳?」 ブラック「今度東京で開かれる会議には全世界75か国から300人以上の委員が集まります」 田畑「あっきれた!なんてヲタが多いの!」 ブラック「そんなこと仰いますが、シェルてえものは一番簡単でしかもいろいろと奥が深いんでゲスよ」 富井「しかし驚いたなあ、そんな会議があるなんて!」 谷村「一度のぞいてみる価値はあるね」 記者A「あの‥さっきのシェルの件だけどね‥」 「bash使ってるけど、僕はいつも.bashrcでsetenvを定義してるよ」 ブラック「ええっ本当ですか!ありがたい、日本にもsetenvファンがいてくれた」 記者B「setenvなんて邪道だよ。環境変数ってのはシェル変数から取り込むの がいいんで、その場で定義するような構文はダサイよ」 記者A「そんなことはない。むしろシェル変数と環境変数の使い分けが曖昧な のがBシェル系の悪いところだろう」 記者C「Cシェル使えばCに似た構文になるだろ」 花村「あら、Cシェル使ったら標準エラーのリダイレクトが大変じゃない」 記者C「標準出力も標準エラーも同じファイルにリダイレクトすればいいじゃないか」 田畑「わあ嫌だ、リダイレクトはファイルデスクリプタごとに定義、これが鉄則よ」 富井「田畑くんの言う通り、そしてexec 2> /dev/nullするのが一番いい」 田畑「わあ厨臭い!」 富井「厨ですみませんね!」
- 27 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 00:22:48 ]
- 谷村「やはりkshの、EDITOR=viでいきたいね」
記者D「僕は、shのESC補完が好きで」 記者C「俺はcshが」 花村「きゃあ変態!」 田畑「シェルの楽しさを知らないのね」 記者C「BSD系のデフォルトだぞ。そんな決めつけ方はないだろう!」 ブラック「いやあけっこうけっこう!なかなか良ござんした」 「皆さんもなかなかシェルにはうるさいじゃありませんか」 記者B「‥結構主張するよね、みんな」 記者A「やっぱり身近なアプリだからね」 ブラック「いかがでゲス、皆さんもISCに参加しませんか?」 山岡「じゃ、どうせなら我々の身の周りの人のシェルに対する意見も聞いて回ったら?」 栗田「面白そう!」
- 28 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 00:23:14 ]
- 社主「なに、シェル?私はごく普通のシェルだよ」
栗田「ごく普通のといいますと?」 社主「bashにomaemonaパッチを当てたものだよ」 山岡「omaemonaパッチ?ごく普通とは思えませんが‥」 社主「どうしてだね?omaemonaパッチを当てていない2chネラなんて考えられんだろうが‥」 山岡「こりゃ、大原社主もISCに参加あるべきだな」 栗田「立派にその資格があるわ」 板山「よくぞこの私に聞きに来てくれたわい、私はシェルではずいぶん苦労した」 山岡「へえ板山社長が‥」栗田「人は見かけに寄らないわね」 板山「私はシェルのプロンプトがいつも同じってのが気に入らなくてね、 毎回変化するプロンプトを作ったんだ」 (dotfiles.comにあるモーヲタ製.zshrcを見せる) 板山「ね、こういろいろなプロンプトって楽しいだろう!」 栗田「まあ面白い!」山岡「これは板山社長もISCに入会だな」 陶人「これがわしの手製のシェルだ」 栗田「わあ可愛らしい!」山岡「staticリンクしてもフロッピー1枚に余裕で入る大きさだね」 陶人「ふっふ、領子がレスキュー用のシェルが欲しいと言ったので作ってやったんじゃよ」 領子「陶人くんの作ってくれたシェルで作業すると、復旧し易いのよねぇ」 山岡「‥あほらし‥よし、これをバンドルした1FDLinuxを売った金で、なにか うまいものを買いに行こう」 栗田「唐山先生もISCに入会ね」
- 29 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 00:23:45 ]
- 司会「ただ今から「国際シェル会議」日本大会を開きます」
会長「シェルはアプリの中でも一番基本なものであります。しかし単純だからこそ奥が深く難しい」 「本大会はシェルに関する諸問題を議論し尽くしたいと思います」 「世界の平和はシェルから、を合い言葉に、さあ始めましょう!」 三谷「実は僕はzsh派でね」 花村「困っちゃった、私、bashし使ったことないのよお‥」 田畑「さあ大変、徹夜しなきゃ」 司会「まず、フランスのフリット氏に、シェルの設定の仕方についての中間発表をお願いしましょう」 フリット「シェルを設定する際の永遠の課題は、どのファイルで何の設定をするかということであります」 「設定項目毎にファイルを分けるのもみっともないし‥」 「といって、1ファイルに全部の設定をするのも下品です」 「これはあるアメリカ人の例です、アルファベット名のファイルを作っ てrcファイル中で順番に読み込むようにして‥」 「コマンド名のアルファベット順に対応するファイルに書いていくやり方もあります」 会場(ブーブー) 会場「今の最後の設定方法は許せない!あんなやりかたでは、ログインシェル もただの対話式シェルも関係なくなってしまう」 会場「私は環境変数は、.zshenvに、zsh固有の定義は.zshrcに、ログインシェル用 の設定は.zlogin、ttyの設定やBシェル系でも使える設定などは.zprofile で設定します。こうするとメンテナンスや移行が容易になる」 会場「それは、私たちbashユーザーには不可能だ。シェルはzshだけではないことをお忘れなく」 会場「デフォルトの設定が十分なら、どのファイルで何を設定するとか心配しないですむんだ!」 会場「ちょっと待って、デフォルト設定がいいのか悪いのかは別の問題だ!」 会場「私はaliasでc="LANG=C LC_ALL=C"と設定しています」 「英語ロケールでアプリを起動するときは、c appで起動するだけなので最高です」 栗田「みんなすごいわ、ケンケンガクガクねっ」
- 30 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 00:24:13 ]
- 司会「さて、シェルの設定の仕方についてはこれくらいにして‥」
「次はzshがいいかbashがいいか、議論したいと思います」 「それでは、日本におけるzshとbashの実状についてブラック委員から報告して頂きましょう」 ブラック「快楽亭ブラックでございます。さて私は日本に来て以来あちこちで 調べた結果、日本ではシェルといえばbashのことでありまして、zshは厨 以外にはほとんど普及しておりませんでゲス」 会場「bashだと、スクリプトでよく使われている/bin/shと互換性があるから、 シェルスクリプトの勉強がし易くて、その分使い勝手が良いわ」 会場「日本人がbashを好むのは、シェルの名前が、米大統領ブッシュに似ているからであります」 「いわば、敗戦コンプレックスに強く訴えるのであります」 会場「拡張性の高さがzshの良さだっ!」 会場「しかし問題があります。設定が難しい。manも項目毎に11種類もあるし‥」 花村「私もそうなんです!誰か、設定のコツを教えてくださいっ!」 「‥あら、私、思わず 興奮しちゃって‥」 会場「あれこれいっぺんに設定すると失敗するんですよ、1つ1つ試していくことです」 会場「最初の設定を最小にして、使いながら気にいった機能を設定していくといい」 山岡「拡張性の高さなら、こんなシェルがあるよ」 「pythonのインタラクティブ版、ipython‥」 花村「pythonをシェルとして使えるのか!」 山岡「一番の利点は、ログをそのままpythonプログラムにもできることだね」 ブラック「ただ今のシェルは、bashともzshとも違います」 「これからbashとzshの他に、このシェルも論議の対象に加えることを提案します!」 会場「異議なし!」「賛成!」 司会「それでは、ターミナルは何をや使うべきかを論議する前に、皆さんそれ ぞれ好きなシェルをコンパイルしてインストールしましょう」 会場「異議なーし!」「インストールしましょう!」 花村「楽しい会議ねえ」 田畑「全然結論を出さないところが、犯罪的だけど‥」 山岡「結論は各々が自分で出せばいいんじゃないの」
- 31 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 06:10:42 ]
- 長すぎ
- 32 名前:デフォルトの名無しさん [2005/04/11(月) 09:04:13 ]
- >>26-30
お前、文才ありすぎw しかも、おもろい。 シェルを知ってるようだしな。 しっかし、会話の最初にもあったけどシェル変数と環境変数って なんか、ぱっとせんなぁ。
- 33 名前:デフォルトの名無しさん mailto:age [2005/04/11(月) 16:07:43 ]
- …質問して良いのかな?
ファイルを読み込んで、各行の先頭文字を判定し、コメント文でなければ表示 をするというものを作っています。現在、以下のようにして判定しているので すが、これでは、「空行があるとファイルはそこで終わり」だと判断されてし まい、最後までいってくれません。全行を見るためには、どう書けば良いので しょうか?bsh使いです。 while read KEY do #判定 done < test.dat お願いします。
- 34 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 18:06:01 ]
- >>33
シェルスクリプト総合 その1 pc8.2ch.net/test/read.cgi/unix/1101820646/
- 35 名前:デフォルトの名無しさん [2005/04/11(月) 21:12:58 ]
- shはなんであんなにキモイんですか?
- 36 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 21:40:16 ]
- >>33
判定がおかしいんじゃないの? #判定 の部分を、echo $keyに変えてみ。 それ以前に、 grep -v "^#" < input.txt でええやん。(行頭文字「#」がコメント開始の場合)
- 37 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 21:53:09 ]
- >>35
けっこー美しいと思うおいらは変態でつか?(゚◇゚;
- 38 名前:デフォルトの名無しさん mailto:sage [2005/04/11(月) 22:22:30 ]
- UNIX使ってるやつがキモイから
- 39 名前:デフォルトの名無しさん [2005/04/11(月) 23:18:10 ]
- CreateGameー陸海空オンラインー
www112.sakura.ne.jp/~kaientai-project/creategame.htm 2chスレ game10.2ch.net/test/read.cgi/mmominor/1109935948/ ただ今、即戦力募集中!歴史に残るMMOを作ってみないか!!
- 40 名前:デフォルトの名無しさん [2005/04/11(月) 23:37:30 ]
- >>26-30
海原と山岡のシェル対決キボンヌ
- 41 名前:デフォルトの名無しさん [2005/04/12(火) 01:05:20 ]
- 究極シェルと至高シェル対決キボン
- 42 名前:33 mailto:sage [2005/04/12(火) 08:24:26 ]
- >>36
>>34氏の誘導先で、自己解決できました。 自己解決というか、何もコードは変えていないのですが意図する結果を出すようになりました。 (それはそれで可笑しいのですが…) > grep -v "^#" < input.txt >でええやん。(行頭文字「#」がコメント開始の場合) シェルスクリプト勉強中の身でして、「caseで一行ずつ判定させてみよう」と 思い立って、作ってみたものなのです。 ありがとうございました。
- 43 名前:デフォルトの名無しさん [2005/04/14(木) 02:01:50 ]
- 質問させて下さい。
シェルスクリプトからPHPを呼び出す際、 /usr/bin/php /home/id/public_html/test.php ↑の様に普通に呼び出すと問題ないのですが、 ↓の様に、引数付きで呼び出すと正しく認識してくれません… /usr/bin/php /home/id/public_html/test.php?mode=1 シェルスクリプトから引数付きでPHPを呼び出すにはどうしたらよいのでしょうか?
- 44 名前:デフォルトの名無しさん mailto:sage [2005/04/14(木) 10:54:18 ]
- >正しく認識してくれません
そりゃそうだ。 そのままではシェルからはtest.php?mode=1というファイルを探しに行ってしまう。 私ゃphpは知らんが、コマンドライン引き数として渡せばいいのなら /.../test.php mode=1 でいいかと。 そうでないなら標準入力? cgiに詳しい人の降臨待ちかな。
- 45 名前:43 mailto:sage [2005/04/15(金) 07:36:31 ]
- >>44
なるほど、そうですよね。 シェルスクリプトってDOSでいうバッチファイルみたいなもんなんですよね… なんだかおバカな質問してしまってました。 どうもありがとうございました。
- 46 名前:デフォルトの名無しさん [2005/04/18(月) 22:25:35 ]
- Cygwin上のbashでスクリプトを組んでいるのですが教えてください
あるデータ 1,2,3 abc があってこれをカンマを区切り文字として それぞれを変数に代入したいのですが、どうやればいいんでしょうか DATA="123,456,789 abc" set -- ${DATA} for i in $@; do echo $i done 上の様にやると 123,456,789 abc と空白で区切られてしまいます setコマンドで読み込む時に区切り文字は指定できないんでしょうか IFS変数をいじってみたけどダメでした あるいは他の方法(コマンド)があるんでしょうか
- 47 名前:デフォルトの名無しさん mailto:sage [2005/04/18(月) 22:47:48 ]
- awkでやれば?
それよりもUNIX板で聞いた方が確実。
- 48 名前:デフォルトの名無しさん mailto:sage [2005/04/18(月) 22:53:12 ]
- >>46
$ IFS=, ; for i in "$*" ; do echo $i ; done 123 345 678 abc $ IFS=, ; for i in $* ; do echo $i ; done 123 345 678 abc
- 49 名前:デフォルトの名無しさん mailto:sage [2005/04/18(月) 22:55:05 ]
- >>26-30 ワロタ
- 50 名前:デフォルトの名無しさん mailto:sage [2005/04/18(月) 23:06:22 ]
- 「シェルの比較」はスレ違いだな
- 51 名前:デフォルトの名無しさん mailto:sage [2005/04/18(月) 23:34:18 ]
- >>47
>>48 アドバイスありがとうございます なんとかできました
- 52 名前:デフォルトの名無しさん [2005/05/22(日) 13:10:43 ]
- tcshなんてヽ( ・∀・)ノ●ウンコー
- 53 名前:デフォルトの名無しさん [2005/05/22(日) 13:17:36 ]
- kshなんてヽ( ・∀・)ノ●ウンコー
- 54 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 14:56:59 ]
- ashなんてヽ( ・∀・)ノ●マンコー
- 55 名前:デフォルトの名無しさん [2005/05/23(月) 22:52:38 ]
- ヽ( ・∀・)ノ●ウンコーbashで質問です
引数に与えられたファイルの最終更新時刻から現在までの時間を求める 関数fooを作成したのですが function foo(){ local nowtime=$(date '+%s') loca lfiletime=$(date -d "$(ls --full-time $1 | cut -d' ' -f8,9)" '+%s') let difftime=$nowtime-$filetime let h=${difftime}/3600 let m=${difftime}%3600/60 let s=${difftime}%3600%60 echo ${h}:${m}:${s} } 使い方: foo filename 処理速度が遅くていけてません もっといい方法があったら教えてください
- 56 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 23:19:21 ]
- 速度を求めるなら C で書くのがいいと思う
- 57 名前:デフォルトの名無しさん mailto:sage [2005/05/25(水) 20:33:15 ]
- >>55
スクリプトに速度を求めるのは間違い。 difftime以外の変数を全廃してそれでも遅ければ別の方法を検討するべき >>56 おおむね同意
- 58 名前:55 mailto:sage [2005/05/26(木) 00:13:13 ]
- >>56
>>57 まぁそりゃそうなんですけどね Cで書いた方が(この処理に関しては)楽だし もっとエレガントにできちゃう方法があるのかなと聞いてみますた アドバイスありがとうございました
- 59 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 20:24:26 ]
- つまり役立たずは消えろってことだよ
わかった?>>56-57
- 60 名前:デフォルトの名無しさん mailto:sage [2005/05/27(金) 21:02:35 ]
- なんかほのぼの…
- 61 名前:デフォルトの名無しさん [2005/06/06(月) 21:18:28 ]
- bashなんですが教えてください
シェルスクリプトソースに含まれる変数を抽出しようとして ますが、いい方法が思いつきません cat hoge.sh | grep '\$.+' | 'ここがわからんぽ' | sort | uniq 'ここがわからんぽ'を' sed 's/\$.\+/'にすれば「変数」だけ取り除けるんですが sedの置換条件を反転すればいいんでしょうけどやり方がわからん・・
- 62 名前:デフォルトの名無しさん mailto:sage [2005/06/06(月) 22:22:49 ]
- とりあえず俺が思いついたの。でもこれでは一行につき一個しか取り出せない。
sed 's/.*\(\$\w\+\).*/\1/p'
- 63 名前:デフォルトの名無しさん mailto:sage [2005/06/06(月) 23:06:57 ]
- sedではツールの仕様上、一行に一つだと思うけど。
awkとかperlとか。もっと本格的にlex(もしくはその親戚)とか
- 64 名前:デフォルトの名無しさん mailto:sage [2005/06/07(火) 00:01:32 ]
- >>61-63
どれどれ、じいにやらしておくれでないかい? 以下のスクリプトをファイルに書き込んで、sed -n -f に渡してみ。-nは重要さの。 :restrt s/^[^$]*\$/$/ texist bend :exist h s/\(\$[a-zA-Z0-9_{}]*\)/\1\ / P s/.*\ // trestrt :end
- 65 名前:64 mailto:sage [2005/06/07(火) 00:05:59 ]
- >>64
見直すと、6行目の「h」は全く要らんのお。取り去っておくれや。 じいの時代はの、 ・ラベルは6文字まで。 ・sedの扱う正規表現には\wとか+とかなかった。 ・sedにグループ化の記号{}とかはなかった。 だったので読みにくくてすまんのお。 若い人が現在のモダンなsed向きに綺麗に書き直しておくれ。
- 66 名前:62 mailto:sage [2005/06/07(火) 00:06:41 ]
- むはは。ダメダメだわこれ。つか変数部分の終了を検知するのマンドクセ
>>63 sedでも不可能ではないと思う。けど相当にややこしい。
- 67 名前:62 mailto:sage [2005/06/07(火) 00:08:06 ]
- あ、いつのまにか偉い人が。
- 68 名前:64 mailto:sage [2005/06/07(火) 00:08:29 ]
- それから、じいの時代には改行に\nとか使えなかったのも
sコマンドの切れ目のわかりにくさに影響しとるのお。 年寄りの話は長くていかんってか?まあ先が短いんだから大目に見ておくれ。
- 69 名前:デフォルトの名無しさん mailto:sage [2005/06/07(火) 00:46:39 ]
- :restrt
s/^#// tend 冒頭にこう入れちゃうのはどうでしょ。 あとbashでは${}の中に%#:-=+*?!/がありだから、 凝ったスクリプトだと途中で切れちゃう変数が出ますね。
- 70 名前:デフォルトの名無しさん [2005/06/07(火) 23:48:04 ]
- kshですが教えてください。
cat TEST* > test_all.dat としたいのですが TEST*にマッチするファイルが多すぎてエラーに なってしまいます。 初心者の私では ls > file.list としてfile.listに該当ファイル名を出力し そこから一件づつtest_all.datに追記する方法しか 考えられませんでした。 何かいい方法があれば教えてください。
- 71 名前:デフォルトの名無しさん mailto:sage [2005/06/08(水) 00:05:49 ]
- >>70
man find
- 72 名前:デフォルトの名無しさん mailto:sage [2005/06/08(水) 00:46:02 ]
- >>70
ls -1 | grep ^TEST | xargs cat > test_all.dat lsがaliasされてる場合は注意。
- 73 名前:デフォルトの名無しさん [2005/06/08(水) 19:02:57 ]
- >>71
findでなんとかなるのでしょうか? >>72 ありがとうございます。 試してみます。
- 74 名前:デフォルトの名無しさん [2005/06/08(水) 19:10:27 ]
- >>71
すみません。わかりました。 72とほぼ同じ方法ですね
- 75 名前:デフォルトの名無しさん mailto:sage [2005/06/08(水) 22:28:02 ]
- 少し知恵を貸してほしいのですが・・・
SQLで吐かしたテーブルのカラム名を 単純にカンマで区切って連結させたいのだけど どうすればいいでしょうかね?
- 76 名前:デフォルトの名無しさん mailto:sage [2005/06/08(水) 23:02:57 ]
- >>75
> SQLで吐かしたテーブルのカラム名 というのはどうでもよくて、 それがどういうフォーマットなのか を書かないと訳がわかりません
- 77 名前:デフォルトの名無しさん mailto:sage [2005/06/09(木) 00:12:57 ]
- >>72
> ls -1 | grep ^TEST | xargs cat > test_all.dat > lsがaliasされてる場合は注意。 \ls みたいにエスケープすれば、エイリアス展開を抑制できるよ スクリプトなら必須
- 78 名前:デフォルトの名無しさん mailto:sage [2005/06/09(木) 01:36:07 ]
- し、知らなかった…
- 79 名前:デフォルトの名無しさん mailto:sage [2005/06/10(金) 01:35:51 ]
- つか、スクリプト書くのにaliasされてしまう設定って・・・
- 80 名前:デフォルトの名無しさん [2005/07/11(月) 23:17:23 ]
- サーバーにパスワードでログインして
サーバのシェルからpingをどこどこに何回打って そのlogを保存する とかのスクリプトの書き方を教えてください。 よろしくお願いいたします。
- 81 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 23:29:00 ]
- おれはその手の作業はteratermマクロでやってるから。
shより便利だから!
- 82 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 23:29:00 ]
- >>80
サーバーが送ってくる文字列(Login:とか)を待って、それに応じて こっちから文字列を送り返す作業が必要。これにはexpectが便利。 いろんな言語用にいろんなバリエーションがあるけど、 シェルスクリプトでということだからexpect(1)だろうな。後はググれ。 pingの結果を保存する方法はexpect(1)がわかれば自然にわかっから。 それから、パスワードをスクリプト中に書いたり、ファイルに保存したりは すんなよ(なるべく)。これもexpec(1)ならユーザに入力させるように書ける。
- 83 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 00:52:08 ]
- ping -t 5 > a.txt
- 84 名前:デフォルトの名無しさん [2005/07/12(火) 21:51:39 ]
- >>81
>>82 >>83 レスありがとうございます。 今、telnet(5のサーバに連続で)で接続して、 pingとかを打ってそのログがどうだったら この値を返すとか 考えてまして。。。 まったくシェルスクリプト書いた事ないので。。。 今、cygwinで少し理解できるようになりました この文字を返す
- 85 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 22:25:25 ]
- teraterm便利だよね
UNIXもこれなかったら死滅してたよ
- 86 名前:84 [2005/07/12(火) 22:49:38 ]
- telnet でサーバに接続して
loginIDとパスワードを打ち込むシェルスクリプトはどの様に書けばよろしいのでしょうか?
- 87 名前:84 [2005/07/12(火) 23:43:50 ]
- ( sleep 5 ; echo user; sleep 1 ; echo pass; sleep 1 ;
echo ipconfig ) | telnet host であってますでしょうか?
- 88 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 02:12:17 ]
- 上のsleepみたいな不確実なことしないといけないのでしょうか。
出力から何か文字列がきたら切り分けるって風に組みたいんですが。
- 89 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 03:09:15 ]
- expect使えばって書いてあるのに何で使わないの?
- 90 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 03:44:51 ]
- もはやシェルスクリプトじゃないじゃn
- 91 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 04:30:02 ]
- 横レスだが、expect はバランスが悪くないか
追加でプログラムをインストールする程の機能でもないし 個人で使ってるマシンなら良いけど
- 92 名前:デフォルトの名無しさん [2005/07/27(水) 07:40:54 ]
- 複数ディレクトリ以下の文字コードを一度に全部変換したいのですが、
うまい方法あったら教えてください。 シェルスクリプト、もしくはperlで実現したいです。 よろしくお願いします。
- 93 名前:デフォルトの名無しさん mailto:sage [2005/07/27(水) 10:37:25 ]
- >>92
変換対象はファイル名か? それともテキストファイルか? いずれにしても、perlなんぞを持ち出すまでもないだろ。
- 94 名前:デフォルトの名無しさん mailto:sage [2005/07/27(水) 15:08:00 ]
- >>92
find directories -type f -exec ... ... の部分はいろいろ。元ファイルを新文字コードの内容で置き換えてくれる プログラム(やスクリプト)なら自明。だけど、別なファイルに書き込む場合でも -exec mv {} {}.orig \; -exec コード変換 {}.orig {} \; とか書けばいい。
- 95 名前:92 [2005/07/27(水) 18:41:15 ]
- すいません。説明不足でした。
ファイル名がわからない状態で変換したいです。 .exeファイルなどは無視して .cpp .hppファイルとかだけを全部検索して 順番に文字コードを変換していきたいです。
- 96 名前:デフォルトの名無しさん mailto:sage [2005/07/27(水) 19:15:59 ]
- >>95
だったら find ... -name '*.cpp' -o -name '*.hpp' ... とか。 portability気にしなくていいなら -o 使わずファイル名パターンに凝ってもよい。 後は適当にman findして。
- 97 名前:92 [2005/07/27(水) 22:04:12 ]
- >>96
基本はfind使っていくのがよさそうということですね。 今からman findがんばって読みます。 ありがとうございました。
- 98 名前:デフォルトの名無しさん [2005/08/05(金) 16:35:18 ]
- age
- 99 名前:デフォルトの名無しさん mailto:sage [2005/08/05(金) 20:00:08 ]
- なんでfindみたいなクソコマンドがいまだに残ってるのか不思議でしょうがない
そんなUNIX
- 100 名前:デフォルトの名無しさん mailto:sage [2005/08/05(金) 22:41:37 ]
- 釣れますか?
|

|