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 あたりに色々と。
620 名前:login:Penguin mailto:sage [2008/12/14(日) 09:45:30 ID:h0ChkGK1] ベースシステム=GNUなんだろうな。 だからGUI厨は・・・
621 名前:login:Penguin mailto:sage [2008/12/14(日) 10:27:04 ID:v1K8r+s5] >>613 > この値をどうやって受け取るのかわからないのです。 返すから受け取れ。
622 名前:615 mailto:sage [2008/12/14(日) 10:56:04 ID:qZcnFZNK] >>617 例えば、テキストインストーラーで、ずっと Enter でデフォルトのまま流したい場合、 例えば、vmware-config.pl とか、 $ yes | sed 's/y//' | vmware-config.pl とすると、自動インストールができるよ。 yes で有り難みを感じたのってこれくらいかな。
623 名前:login:Penguin mailto:sage [2008/12/14(日) 11:28:15 ID:v1K8r+s5] $ yes "" | apt-get install 〜 で、コンフィグファイルをパッケージの物で上書き
624 名前:login:Penguin mailto:sage [2008/12/14(日) 18:19:59 ID:vb4UhgIp] yes >/dev/null としてCPU負荷が高い状態を簡単に作り出せる
625 名前:login:Penguin mailto:sage [2008/12/14(日) 19:12:16 ID:FrsrwlIw] >>624 ああ、これは良い方法を教えて貰った。
626 名前:login:Penguin mailto:sage [2008/12/14(日) 21:39:45 ID:qZcnFZNK] yes も色々使い方があるもんだな。 今日はとても勉強になった。良スレだ。
627 名前:login:Penguin mailto:sage [2008/12/14(日) 21:43:23 ID:ntvk42pK] yes we can
628 名前:login:Penguin mailto:sage [2008/12/15(月) 00:30:34 ID:z26qt3ci] command && echo true || echo false これって if command ; then echo true ; else echo false ; fi これと同じ意味ですか? やってみると同じなんだけど 上のやつはcommandの戻り値を||のところで取れてるのが納得がいかないんですが
629 名前:login:Penguin mailto:sage [2008/12/15(月) 01:16:56 ID:JDbCwPLG] >>628 || は制御演算子だから。詳しくはman bash
630 名前:login:Penguin mailto:sage [2008/12/15(月) 01:33:20 ID:SVRwhtMn] >>628 Cと一緒やん。 ショートカット倫理演算って奴。
631 名前:login:Penguin mailto:sage [2008/12/15(月) 01:38:22 ID:qGdHBZUC] echo true のところが偽になったらまずい
632 名前:login:Penguin mailto:sage [2008/12/15(月) 11:03:10 ID:furyu78m] >>621 どうやら、Tclの知識が全く足りてなかったようでした。 set wait_ret [wait] set exit_st [lindex \$wait_ret 3] exit \$exit_st こんな感じで行けました。
633 名前:login:Penguin mailto:sage [2008/12/15(月) 11:40:13 ID:+qLfSAKJ] >>630 りんり?
634 名前:login:Penguin mailto:sage 違うか [2008/12/15(月) 14:34:12 ID:X1Zh6Thx] 倫理回路を知らんのか。 ギル博士の笛の音で制御されるんだぜ。
635 名前:login:Penguin mailto:sage [2008/12/15(月) 23:06:26 ID:yFzlGNM+] (>>634 or true) die;
636 名前:login:Penguin mailto:sage [2008/12/16(火) 05:24:51 ID:e+M4JPQL] 不完全な倫理回路は精神を抑止きれないのであった。
637 名前:login:Penguin mailto:sage [2008/12/16(火) 18:42:45 ID:JR7TYwVP] yesって何? まじでわからん。
638 名前:login:Penguin mailto:sage [2008/12/16(火) 18:45:24 ID:5tMU0aGB] >>637 man yes
639 名前:login:Penguin mailto:sage [2008/12/16(火) 20:22:10 ID:SAzVk+y/] >>637 yes man
640 名前:login:Penguin mailto:sage [2008/12/16(火) 22:17:36 ID:cBajdfGN] >>637 Siberian Khatru という名曲がありましての。 ttp://jp.youtube.com/watch?v=jpkkduTzR70
641 名前:login:Penguin mailto:sage [2008/12/17(水) 00:28:54 ID:nY30U6Zi] >>640 俺をギター弾きと知っての狼藉か。 なになに? コマンドなのか。 ちょと叩いてみよう。 $ yes っと わーーーーーーーーーーーーーーーーーーーーー!
642 名前:login:Penguin mailto:sage [2008/12/17(水) 00:41:20 ID:TMrKHF72] >>641 フいたwww
643 名前:login:Penguin mailto:sage [2008/12/17(水) 17:57:34 ID:Hofst7JZ] yes(1) yes(1) 名前 yes - kill されるまで文字列を繰り返して出力する 書式 yes [string...] yes [--help] [--version] 説明 yes はコマンドライン引数をスペースで区切って末尾に改行 (newline) を付加 し、 kill されるまで繰り返して表示する。引数が一つも与えられな い と 、 yes は ‘y’ に改行を付加したものを kill されるまで表示しつづける。
644 名前:login:Penguin mailto:sage [2008/12/17(水) 17:58:07 ID:Hofst7JZ] オプション GNU yes が引数一つだけで起動された場合には、以下のオプションが認識され る: --help 標準出力に使用方法のメッセージを出力して正常終了する。 オプション GNU yes が引数一つだけで起動された場合には、以下のオプションが認識され る: --help 標準出力に使用方法のメッセージを出力して正常終了する。 --version 標準出力にバージョン情報を出力して正常終了する。 注意 プログラムのバグについては bug-sh-utils@gnu.org に報告してください。 ペ ージの更新は Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com> が行っ ています。 GNU Shell Utilities 2.1 18 June 2002 yes(1)
645 名前:login:Penguin mailto:sage [2008/12/17(水) 17:59:46 ID:Hofst7JZ] >>637 そんな君へこれを送ろう. sudo su -c ”yes ’\(^o^)/’ > /dev/sda”
646 名前:login:Penguin mailto:sage [2008/12/17(水) 18:04:23 ID:OCczPzah] >>643 なぜコピペ?
647 名前:login:Penguin mailto:sage [2008/12/17(水) 18:05:37 ID:cv0gYoNp] コピペじゃないやい 一生懸命整形したよ!
648 名前:login:Penguin mailto:sage [2008/12/17(水) 20:58:34 ID:QJhvpz4O] yes | cat -n
649 名前:login:Penguin mailto:sage [2008/12/17(水) 22:46:05 ID:nY30U6Zi] >>645 すみません。 リセットボタンを教えても起動しなくなりました。 なんつて
650 名前:login:Penguin mailto:sage [2008/12/20(土) 01:33:20 ID:6Sgnm3ob] >>649 > なんつて うん、こーゆーの、たのしーね。
651 名前: ◆Da4YWdyXjw [2008/12/21(日) 15:07:37 ID:hJtYLWzf] line 27: =/home/user1: No such file or directory こんなエラーが出るので、27行目を見てみると homedir="/home/${username}" たったこれだけ。cdとかmkdirとかしていないのに、ただ変数に代入しただけなのに このエラーはなんなの??
652 名前:login:Penguin mailto:sage [2008/12/21(日) 15:12:54 ID:YLiOEgKM] >>651 =の前に空白が入ってんじゃないの? a=bだったら、「bをaに代入する」になるけど、 a =bだったら、「aコマンドの引数に=bを渡す」になるぞ。
653 名前:login:Penguin [2008/12/21(日) 15:16:00 ID:hJtYLWzf] >>652 すまん、代入するとき変数名に$が入ってた。 他の言語からかじったもんでちょっと戸惑うわ。。
654 名前:login:Penguin mailto:sage [2008/12/21(日) 15:39:47 ID:YLiOEgKM] >>653 sh -x で実効すると、各行がどのように展開されるのかがわかる。 シェルスクリプトデバッグの基本。
655 名前:login:Penguin [2008/12/21(日) 15:44:29 ID:hJtYLWzf] >>654 まじサンクス
656 名前:login:Penguin mailto:sage [2008/12/25(木) 11:10:51 ID:fon1CsAn] >>654 マジサンクス
657 名前:login:Penguin mailto:sage [2008/12/25(木) 12:15:54 ID:moDMTMWz] マンスジクサ
658 名前:login:Penguin mailto:sage [2008/12/25(木) 14:44:55 ID:Dd8u5It4] てか知らんかったのけ?
659 名前:login:Penguin [2008/12/25(木) 14:58:41 ID:hn65XKo2] このスレって時間の流れが遅いのか? それとも過疎っているだけなのか。
660 名前:login:Penguin mailto:sage [2008/12/25(木) 19:17:43 ID:lvg0uyHv] >>654 知らなかった、これは便利そうですね
661 名前:login:Penguin mailto:sage [2008/12/25(木) 22:56:07 ID:lGWnJcnf] 他にかっこいいオプションないですか? -vは結構イカしてると思ってますよ
662 名前:login:Penguin mailto:sage [2008/12/26(金) 00:41:27 ID:W2RM7LsO] sh -nもイカしてる。 うっかり実行すると抜けられなくなる。
663 名前:login:Penguin mailto:sage [2008/12/26(金) 00:46:12 ID:K8BYEhlr] -nってmanに載ってないんだけど何が起こってるのこれ?
664 名前:login:Penguin [2008/12/26(金) 00:53:59 ID:3z8SP2D0] ん?みんなUnixいじった経験とかあるんか? 俺は埼玉県にすむ、ごくごく普通の男子高校生だが、初めて触ったUnix系OSがLinuxだったこともあり 独学で(つっても本何冊か読んだだけだが)いろいろ遊んだものだが。。 どうしたらそんなに詳しくなれるんだよ。仕事とかで使ってるんかおい!
665 名前:login:Penguin mailto:sage [2008/12/26(金) 01:11:34 ID:ivB4KFEt] >>661 -e エラーが発生したらそこで止まる。
666 名前:login:Penguin mailto:sage [2008/12/26(金) 02:52:13 ID:WW2wJ8bx] >>665 きゃー すてき かなw で -n って何よ。 なに? やればわかるって? よしゃやってみる。
667 名前:login:Penguin mailto:sage [2008/12/26(金) 02:53:50 ID:WW2wJ8bx] なにもしないのだが...
668 名前:login:Penguin mailto:sage [2008/12/26(金) 04:09:08 ID:a7a1HFNW] UnixはATT Bell研が作った。
669 名前:login:Penguin mailto:sage [2008/12/26(金) 10:18:31 ID:kY52Q3ra] >>664 仕事で使ってるよ、今はLinuxさわれるだけで儲かりまくり 5年前の話だが、PostgreSQLのインストールができるだけで 単価80万とかワロタ(今は95万)
670 名前:login:Penguin mailto:sage [2008/12/27(土) 02:56:43 ID:ewWZe8H3] expect でキー同時押しは可能でしょうか? [CTRL]+hogeや[ALT]+hogeを実現したいのですけど...。
671 名前:login:Penguin mailto:sage [2008/12/27(土) 08:29:19 ID:XT/dVHCc] man expect
672 名前:login:Penguin [2008/12/27(土) 12:19:24 ID:hR8dpZ4/] 他人が書いたシェルスクリプトを読んでいて、ふと思ったのですが if [ -d "$LOG_DIR" ] と if [ -d $LOG_DIR ] って何が違うのでしょうか? 変数を" "で括っても括らなくても同じだと思うのですが。。。
673 名前:login:Penguin mailto:sage [2008/12/27(土) 12:25:49 ID:x/3/NyyP] 日本語のディレクトリ名とかって平気でスペース含んでるからじゃない?
674 名前:login:Penguin [2008/12/27(土) 12:36:55 ID:hR8dpZ4/] >>673 ああ、まあ確実にしたい気持ちは分かる。
675 名前:login:Penguin mailto:sage [2008/12/27(土) 13:00:38 ID:s0UxMQU1] バグを気の持ちようで片付けられても困る
676 名前:login:Penguin mailto:sage [2008/12/27(土) 13:19:36 ID:tvB/ANXD] 別に日本語じゃなくてもディレクトリ名に空白を含められるよ。
677 名前:login:Penguin [2008/12/27(土) 13:23:17 ID:hR8dpZ4/] そういえばそうだなぁ。。 よくわかりました。ありがとう。
678 名前:670 mailto:sage [2008/12/27(土) 15:32:52 ID:ewWZe8H3] man expect 見ましたがワカリマセン... 例題で set CTRLZ \032 とありますがコード一覧が ワカラナイ...\032 がなぜ CTRL+Z となるのでしょう? ALTキーの例は見当たらず。
679 名前:login:Penguin mailto:sage [2008/12/27(土) 15:42:23 ID:qzL0GYCL] expectではできない。そもそもtty上では無理。
680 名前:login:Penguin mailto:sage [2008/12/27(土) 20:55:00 ID:uu+uz6sg] >>672 LOG_DIRが未定義の場合引数なしとみなされて落ちる。
681 名前:login:Penguin mailto:sage [2008/12/28(日) 01:21:50 ID:c0vKPynm] CentOSを入れて勉強してるのですが、 既存の設定ファイルなどのシェルスクリプトを見ると $1などのパラメータを変数に入れるときに、 arg1="$1" のように書かかれてるのですが、 arg1=$1 としない理由はあるんでしょうか? javaしか知らない自分にとっては後者の方が自然です。
682 名前:login:Penguin mailto:sage [2008/12/28(日) 01:27:58 ID:k8TtxyBW] >>681 >>672 からの話とは別?
683 名前:login:Penguin mailto:sage [2008/12/28(日) 01:29:05 ID:k8TtxyBW] >>681 > javaしか知らない自分にとっては後者の方が自然です。 シェルスクリプトに他の言語の常識は期待しない方がいい。
684 名前:login:Penguin mailto:sage [2008/12/28(日) 01:48:43 ID:V8VzuV0w] >>682 違うだろ。
685 名前:login:Penguin mailto:sage [2008/12/28(日) 01:57:05 ID:HifkpJa1] 引数なんてファイルパスばっかだもんなぁ
686 名前:login:Penguin mailto:sage [2008/12/28(日) 02:48:38 ID:gH9u5ZJh] >>681 その場合だとほとんど変らないけど、 意図がある場合を除いて、"で括っておくのが無難です。 $ aaa='This is a test' $ bbb=TEST $ ccc=XXX $ for i in $aaa $bbb $ccc; do echo $i; done This is a test TEST XXX $ for i in "$aaa" "$bbb" "$ccc"; do echo $i; done This is a test TEST XXX
687 名前:login:Penguin mailto:sage [2008/12/28(日) 02:55:48 ID:HifkpJa1] >>681 javaじゃなくてC経験者なら 「変数は実行時にソース内で#defineみたく展開されるよ」とかで通るのだが
688 名前:681 mailto:sage [2008/12/28(日) 03:10:34 ID:c0vKPynm] >>682 直前に似た質問があったんですね。 ちゃんと見てませんでした。すいません。 >>686 丁寧にありがとうございます。 おおなるほど・・・$aaa としてもそれを一つの変数として見てくれるわけではなく 単純に文字列を置き換えてるだけなんですね。 そういえばシェルスクリプトの変数は文字列型オンリーでしたね。この仕様も納得できた! 勉強になりました。
689 名前:681 mailto:sage [2008/12/28(日) 03:14:08 ID:c0vKPynm] >>687 気になったのでさっきCを調べてみました。 マクロってやつですよね?確かに同じですね。 Javaから入ると変な先入観がつくのかな。
690 名前:login:Penguin mailto:sage [2008/12/28(日) 06:27:34 ID:uuzQR67D] ${val}みたいになってるやつはどうなの?
691 名前:login:Penguin mailto:sage [2008/12/28(日) 09:25:26 ID:AoJUSROw] どうもこうも、中括弧とクォートでは役割が違う。
692 名前:login:Penguin mailto:sage [2008/12/28(日) 10:04:59 ID:V8VzuV0w] >>691 その役割までを語って初めて説明だと思うが。
693 名前:login:Penguin mailto:sage [2008/12/28(日) 10:22:27 ID:UElCX9mx] 1から10まで説明する義務はないし・・・ まあググっとけ
694 名前:login:Penguin mailto:sage [2008/12/28(日) 10:49:16 ID:gH9u5ZJh] >>690 {}の中に特殊文字があってindirect expantsionしなければおんなじ。
695 名前:login:Penguin mailto:sage [2008/12/28(日) 11:32:10 ID:qx39pT0/] >>690 hoge=HOGE echo "$hoge" echo "$hogehoge" echo "${hoge}hoge"
696 名前:login:Penguin mailto:sage [2008/12/28(日) 13:52:19 ID:X7MLwHJR] >その役割までを語って初めて説明だと思うが。 なんでやねん… クォーティングの話題に突如としてトンチンカンな話が降って来たら、「それとこれとは話が別」と話題を戻すだけでいい。 あなたはアサッテな割り込みに一々説明を付してるの?
697 名前:login:Penguin mailto:sage [2008/12/28(日) 14:11:20 ID:gH9u5ZJh] スルー推奨
698 名前:login:Penguin mailto:sage [2008/12/28(日) 16:15:02 ID:uuzQR67D] >>694 ,>>695 あーなるほど.ありがとう
699 名前:login:Penguin mailto:sage [2008/12/28(日) 16:57:51 ID:k8TtxyBW] >>692 なら説明してあげればいいじゃん。
700 名前:login:Penguin mailto:sage [2008/12/28(日) 17:25:58 ID:UVDbYRmP] 692=690なのでそれは無理
701 名前:login:Penguin mailto:sage [2008/12/28(日) 22:34:26 ID:V8VzuV0w] >>700 はずれw
702 名前:login:Penguin mailto:sage [2008/12/29(月) 00:54:22 ID:SBfu66K7] では、 知識レベルが692=690なのでそれは無理
703 名前:login:Penguin mailto:sage [2008/12/29(月) 23:16:33 ID:/oNto50r] >>689 マクロじゃなくね?
704 名前:login:Penguin mailto:sage [2008/12/30(火) 01:00:20 ID:lBIxx9ih] Cの#defineはマクロと言い慣わしてるんじゃないの。
705 名前:login:Penguin mailto:sage [2008/12/30(火) 01:00:39 ID:87J+HjQp] >>703 #defineはどう考えてもマクロだよ
706 名前:login:Penguin mailto:sage [2008/12/30(火) 05:02:34 ID:pBkCbbzG] >>704 #define hoge(x) ((x) + 1) ってのがマクロなんじゃね? cppをマクロプロセッサと言ってしまうなら#includeとか命令によらず、cppの指令はマクロだ。
707 名前:login:Penguin mailto:sage [2008/12/30(火) 06:19:54 ID:9LZImUfc] >>706 それはマクロ関数と言うんだ
708 名前:login:Penguin mailto:sage [2008/12/30(火) 08:50:55 ID:6bdNNdYb] >cppをマクロプロセッサと言ってしまうなら 誰も言ってないようだよ。 徹夜は脳の働きが衰えるから、やはりきちんと睡眠をとった方が良い。
709 名前:login:Penguin mailto:sage [2008/12/30(火) 09:37:14 ID:wDHrwpLi] >>708 おはよう。 そんな浅い部分で揚げ足を取られても、どうしていいか分からない。
710 名前:login:Penguin mailto:sage [2008/12/30(火) 12:43:54 ID:rrOPwMCx] 分からないって、まだ寝惚けてるのか… よく読め。それとも寝言なのか。 >#define hoge(x) ((x) + 1) >ってのがマクロなんじゃね? >cppをマクロプロセッサと言ってしまうなら#includeとか命令によらず、cppの指令はマクロだ。
711 名前:login:Penguin mailto:sage [2008/12/30(火) 15:51:33 ID:sP1b7pNg] いいかげんよそでやってくれんかの。
712 名前:login:Penguin [2008/12/30(火) 15:54:59 ID:3P3IYyTe] いいじゃんか、年末年始くらい。 普段忙しいやつも、普段から暇なやつも、この時期はゆっくりしようじゃないか。
713 名前:login:Penguin mailto:sage [2008/12/30(火) 16:15:51 ID:sP1b7pNg] そんなの理由にならん。 雑談スレなりム板なりに行ってくれ。
714 名前:login:Penguin [2008/12/30(火) 16:35:52 ID:3P3IYyTe] 自治厨か...
715 名前:login:Penguin mailto:sage [2008/12/30(火) 16:40:22 ID:87J+HjQp] 他に話題ないなら雑談でもいいじゃない。 ちなみに現在のwikipediaによると ja.wikipedia.org/wiki/%E3%83%9E%E3%82%AF%E3%83%AD_ (%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E7%94%A8%E8%AA%9E) ja.wikipedia.org/wiki/%E3%83%97%E3%83%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5 >>703 >>706 は間違い。 ってわけで3分待って異論がなければ次の話題どうぞー。
716 名前:login:Penguin mailto:sage [2008/12/30(火) 20:48:26 ID:iG8gioVG] sleep 3m
717 名前:login:Penguin [2008/12/30(火) 20:53:39 ID:3P3IYyTe] exit
718 名前:login:Penguin mailto:sage [2008/12/30(火) 21:09:33 ID:wDHrwpLi] >>715 Wikipedia >ってわけで3分待って異論がなければ次の話題どうぞー。 じちすんな。
719 名前:login:Penguin mailto:sage [2008/12/31(水) 01:13:41 ID:HIiJTqzM] >>716 いつも sleep 180ってやってた orz きっと10年位前からある機能を今まで知らなかったんだろうなw
720 名前:login:Penguin mailto:sage [2008/12/31(水) 01:21:21 ID:Q1/GD5E9] >>719 逆にいつも sleep 5s ってやってた orz