- 1 名前:名無しさん@お腹いっぱい。 [2007/02/15(木) 14:28:44 ]
- シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。 まずは注意点、リンク、地鎮祭など(>>1-6くらい)をご覧ください。 □お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashなので特に注意。 ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルスクリプトのことをシェルってゆーな ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも RubyやPerlの方が適した仕事には素直にそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 前スレ シェルスクリプト総合 その7 pc10.2ch.net/test/read.cgi/unix/1157601611/
- 971 名前:名無しさん@お腹いっぱい。 [2007/08/09(木) 21:12:46 ]
- >969
はえーなw そうするわ<フィードバック 再現できた。 ls | echo 1^C ls
- 972 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/10(金) 10:31:14 ]
- aシェルの中でbコマンドをバックグラウンドで実行した場合、
bはまだ実行中だけど、aが終了したときにbにシグナルを送って強制的に終了することってできますか?
- 973 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/10(金) 11:10:07 ]
- >>972
trap "kill $pid;kill -0 $pid && { sleep 1;kill -9 $pid; }; :" EXIT
- 974 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/10(金) 11:33:26 ]
- >>973
trap: Illegal number: EXIT
- 975 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/10(金) 13:18:19 ]
- >>974
trap "kill $pid;kill -0 $pid && { sleep 1;kill -9 $pid; }; :" 0
- 976 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/10(金) 13:26:23 ]
- スクリプトで排他制御をする手っ取り早く確実な方法は何でしょうか?
セマフォ使えればいいんだけど、そんなコマンドないもんね・・・
- 977 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/10(金) 13:38:33 ]
- >>973
ありがとうございます。 ちなみにSIGKILLはどうしようもないですよね・・・
- 978 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/10(金) 13:41:55 ]
- 子の側でときどき親が生きてるか確認する、とか。
- 979 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/10(金) 13:47:20 ]
- >>976
FreeBSDには LOCKF(1) FreeBSD General Commands Manual LOCKF(1) NAME lockf -- execute a command while holding a file lock がある。
- 980 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/10(金) 23:17:10 ]
- >976
lockf は簡単だけど無ければ mkdir を使うんじゃね?
- 981 名前:名無しさん@お腹いっぱい。 [2007/08/11(土) 19:03:37 ]
- ksh93での質問です。
typeset -A で連想配列を使用したいんですが、ksh93でKey値の一覧を取得する方法ってあるんでしょうか? (Perlでいうとkeys関数みたいな感じで)
- 982 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/11(土) 20:05:44 ]
- ksh93をつかっているUnixってあるんだな。
- 983 名前:名無しさん@お腹いっぱい。 [2007/08/11(土) 21:25:48 ]
- >>982
ソースが公開されてんのって、ksh93だから、LinuxやFreeBSDとかでもpdksh以外のkshを使おうとすると、ksh93になるよね。 逆にksh88的に使いたいならpdkshになるんだけど、pdkshはpdkshでksh88とは振る舞いが結構違うのでいたいところがあるね。 商用系のUnixだと、AIXは/bin/ksh93がksh93、/bin/kshはksh88。HP-UXやSolarisはどうなんだろ?一応、ksh93は存在するみたいだけど・・・
- 984 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/11(土) 22:08:09 ]
- HP-UX11iv1とSolaris8/9/10はksh88しかない。
- 985 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/11(土) 23:31:11 ]
- posix-sh をつかうとか
|

|