シェルスクリプト総合 その2
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2005/04/17(日) 00:17:17まずは注意点、リンク、地鎮祭など(>>1-10くらい)をご覧ください。
□前スレや過去スレ:
シェルスクリプト総合 その1
http://pc8.2ch.net/test/read.cgi/unix/1101820646/
☆シェルスクリプトを勉強するにあたって☆
http://pc5.2ch.net/test/read.cgi/unix/989659936/
便利なシェルスクリプト見せろ
http://pc5.2ch.net/test/read.cgi/unix/996949546/
【貝】第1回シェル講座【殻】
http://fun.kz/test/read.cgi/unix/1016372780/
□関連スレ:
sed
http://pc8.2ch.net/test/read.cgi/unix/1085730992/
おまえら! shell は何を使っているんですか?
http://pc5.2ch.net/test/read.cgi/unix/1012330865/
Eshell の使い方とか設定とか【Emacs Shell、Lisp】
http://pc8.2ch.net/test/read.cgi/unix/1102921590/
□他板の関連スレ:
Macでシェルスクリプト総合 Part 1
http://pc7.2ch.net/test/read.cgi/mac/1105074933/
【Shell】どのシェル使ってる?【Script】
http://pc8.2ch.net/test/read.cgi/linux/1067330754/
0002名無しさん@お腹いっぱい。
2005/04/17(日) 00:17:59・特記なき場合はbourne shがデフォルトです。
bash/csh/tcsh/zsh/ksh/ashなどに依存する場合は明示しましょう。
Linuxユーザは/bin/shの正体がbashなので特に注意。
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
manや参考リンクを見ましょう。
aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
RubyやPerlの方が適した仕事には素直にそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□初心者向けリンク
「誰にでも」シリーズ
http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/publications/dareUni/
/bin/shプログラミング入門
http://freebooks.info.nara-k.ac.jp/archive/ShellProgramming/
Bourne Shell 自習テキスト
http://www.tsden.org/takamiti/shText/shText.html
シェルを使おう - 導入からプログラミングまで -
http://www.netfort.gr.jp/~tomokuni/lms/shell/text/
0003名無しさん@お腹いっぱい。
2005/04/17(日) 00:18:44プロフェショナルシェルプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4756116329/
入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界
http://www.amazon.co.jp/exec/obidos/ASIN/4797321946/
UNIXシェルプログラミング徹底解説
http://www.amazon.co.jp/exec/obidos/ASIN/4822280489/
入門Kornシェル
http://www.amazon.co.jp/exec/obidos/ASIN/4873110149/
入門bash
http://www.amazon.co.jp/exec/obidos/ASIN/4900900788/
□参考リンク:
UNIXの部屋 (沢山のコマンドの簡単な紹介など)
http://x68000.q-e-d.net/~68user/unix/
POSIX: Shell & Utilities (標準規格)
http://www.opengroup.org/onlinepubs/009695399/utilities/contents.html
□関連書籍と関連リンク:
FreeBSD Hypertext Man Pages
http://www.freebsd.org/cgi/man.cgi
Linux JF (Japanese FAQ) Project.
http://www.linux.or.jp/JF/
Unix Programming Frequently Asked Questions 日本語訳
http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_toc.html
UNIXプログラミング環境
http://www.amazon.co.jp/exec/obidos/ASIN/4871483517/
0004名無しさん@お腹いっぱい。
2005/04/17(日) 00:20:03制御・条件判定系:
[,test,expr,true,false,yes,getopts
テキスト処理系:
cat,awk,sed,tr,sort,uniq,grep,wc,head,tail,cut,paste,comm,join
ファイル名・ディレクトリ系:
find,xargs,basename,dirname
出力系:
echo,printf
対話コマンド制御系:
expect
http/ftpの処理自動化:
wget,curl
0005名無しさん@お腹いっぱい。
2005/04/17(日) 00:21:440006名無しさん@お腹いっぱい。
2005/04/17(日) 00:39:49乙
0007名無しさん@お腹いっぱい。
2005/04/17(日) 03:42:00お約束は>>1に置いといた方がよかったんでは。
次スレのテンプレは前スレ準拠がいいな。
0008名無しさん@お腹いっぱい。
2005/04/17(日) 10:55:18どうしますか?
0009名無しさん@お腹いっぱい。
2005/04/17(日) 10:58:11echo -e "\xFF"
で混ぜる。
0010名無しさん@お腹いっぱい。
2005/04/17(日) 10:59:440011名無しさん@お腹いっぱい。
2005/04/17(日) 11:19:120012名無しさん@お腹いっぱい。
2005/04/17(日) 12:12:490013名無しさん@お腹いっぱい。
2005/04/17(日) 13:14:530014名無しさん@お腹いっぱい。
2005/04/18(月) 21:29:39> touch ゆみさんかわいいよゆみさん
> ls
ゆみさんかわいいよゆみさん
> touch ゆみさんかわいいよゆみさ
> touch ゆみさんかわいいよゆみ
> touch ゆみさんかわいいよゆ
> touch ゆみさんかわいいよ
> ls
ゆみさんかわいいよ ゆみさんかわいいよゆみさ
ゆみさんかわいいよゆ ゆみさんかわいいよゆみさん
ゆみさんかわいいよゆみ
> rm ゆみさん*
> ls
0015名無しさん@お腹いっぱい。
2005/04/18(月) 21:45:40はできるけど$'......'の形式がダメ
0016名無しさん@お腹いっぱい。
2005/04/18(月) 21:49:540017名無しさん@お腹いっぱい。
2005/04/18(月) 22:20:500018名無しさん@お腹いっぱい。
2005/04/18(月) 23:35:03最初に起動したコマンドのプロセス番号を記録しておけばいいんでしょうか。
一度には一つしか使わないので、psコマンドの出力を適当にgrepして使ってもいいでしょうか。
お知恵をお貸しください。しばらく自分で考えてみます。
0019名無しさん@お腹いっぱい。
2005/04/18(月) 23:37:210020名無しさん@お腹いっぱい。
2005/04/18(月) 23:37:530021名無しさん@お腹いっぱい。
2005/04/18(月) 23:38:23そんなにいいならちょっと見てみますね。
002221
2005/04/18(月) 23:39:52002321
2005/04/18(月) 23:41:45ついでに言いますと、root権限がない場合のことも考えておきたいところなんです。
0024名無しさん@お腹いっぱい。
2005/04/18(月) 23:42:37シェルスクリプトでatofに相当するコマンドと使用法を教えてください
0026名無しさん@お腹いっぱい。
2005/04/18(月) 23:47:05一般ユーザでってこと?特別な管理専用ユーザつくるってこと?
0027名無しさん@お腹いっぱい。
2005/04/18(月) 23:49:460028名無しさん@お腹いっぱい。
2005/04/18(月) 23:52:10どうやら別のとこが悪かったみたいです。
ありがとうございました。
0029名無しさん@お腹いっぱい。
2005/04/19(火) 00:04:59実際のスクリプトでは、最後の行にlftpでログをミラーする文を追加しています。
#!/bin/sh
if ! ps augxww | grep -v grep | grep "java -classpath .:./lib/pircbot.jar org.jibble.logbot.LogBotMain"
then
echo "Restarting LogBot...."
(cd /path/to/LogBot && java -classpath .:./lib/pircbot.jar org.jibble.logbot.LogBotMain) 2>&1 | tee /path/to/LogBot.log
fi
そのまんまでひねりが無いですが、ま、動いています。
0030名無しさん@お腹いっぱい。
2005/04/19(火) 05:57:48終了したら開始するようにしたらダメ?
0031名無しさん@お腹いっぱい。
2005/04/19(火) 08:56:01execすればいい。
で、PIDファイルに対応するプロセスが死んでたらまたexecして、
生きてたらそのまま終了する。これをcronで好きな間隔でまわせばいい。
0032名無しさん@お腹いっぱい。
2005/04/19(火) 10:52:54root に無断でそういうことをするのはやめてくれ。
0033名無しさん@お腹いっぱい。
2005/04/21(木) 20:44:53rshを使ってサーバAからサーバBとサーバCに
配置してあるスクリプトXを非同期に実行させようとしています
rshで実行したスクリプトXの戻り値を取得しようと
スクリプトXの戻り値を(Aの)標準出力に表示させているんですが
1 rsh -n servA 'X'&
2 rsh -n servB 'X'&
3 AとBからの戻り値を標準出力から取り込むまで待機する
1と2の処理の間にservAの戻り値が表示されてしまうと
3で止まったままになってしまう気がします
どうすればうまく待ち合わせができるんでしょうか
そもそもrshなんか使うなというツッコミは無しの方向でお願いします
0034名無しさん@お腹いっぱい。
2005/04/21(木) 21:35:33イマイチ、何をしたいのかが不明だけど。
0035名無しさん@お腹いっぱい。
2005/04/21(木) 21:42:23> 3 AとBからの戻り値を標準出力から取り込むまで待機する
が意味不明
0036名無しさん@お腹いっぱい。
2005/04/21(木) 21:43:26戻り値って終了ステータスのことだよ。
それから、&を付けてバックグラウンドにすると、
戻り値はすべて0になるから、判定不可能になる。
&をやめてフォアグラウンドにしても、
rsh越しだと戻り値を取得できず、
やはりすべて0になって判定不可能になる。
003733
2005/04/21(木) 22:21:53rshそのものの戻り値($?)を得たいのではなく
rsh越しのスクリプトXの戻り値を得たいので
スクリプトX側で標準出力に終了を表す文字列(0とかcompleteとか)を表示すれば
擬似的な戻り値を得られると思ったんですが
やりたい事はこうです
A: ->(Xを実行しろと命令してすぐリターン) B
B: Xが終わったのでecho 0(完了の意)
A: Aの端末に0が表示される
A: 0と表示されたのを確認してBのお仕事xが終わったと判断
ひょっとして俺はなにか思い違いをしてます?
■ このスレッドは過去ログ倉庫に格納されています