シェルスクリプト総合@LINUX Part3
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
2007/07/10(火) 23:17:13ID:qGthZdMEまあそれはそれとして、BASHウゼーとか言われる心配なく
平和にLINUX的スクリプト談義しましょうよ。
初めての自作スクリプト、自信ないから見てください。な初心者から
トリッキーな技を駆使した作品を披露したい、蘊蓄を語りたい上級者まで
いろいろな人に参加して頂けると嬉しいです。
perlやらPythonやらの話が混ざっても良いんでない?
【sed】シェルスクリプト総合@LINUX Part2【awk】
http://pc11.2ch.net/test/read.cgi/linux/1154578200/
http://pc8.2ch.net/test/read.cgi/linux/1121994321/
>>2-5あたりに色々と。
0002login:Penguin
2007/07/10(火) 23:18:45ID:qGthZdMEおまいら! sed の使い方教えて下さいm(_ _)m@linux板
http://pc11.2ch.net/test/read.cgi/linux/1067815570/
【Shell】どのシェル使ってる?【Script】@LINUX板
http://pc11.2ch.net/test/read.cgi/linux/1067330754/
シェルスクリプト総合 その8
http://pc11.2ch.net/test/read.cgi/unix/1171517324/
sed@UNIX板
http://pc11.2ch.net/test/read.cgi/unix/1085730992/
2ちゃん画像落としまくりスクリプト@UNIX板
http://pc11.2ch.net/test/read.cgi/unix/1003833552/
連番のH画像/動画を一気にダウンロードする2
http://pc11.2ch.net/test/read.cgi/unix/1135533382/
ログを読みたい人はこちら
http://makimo.to/cgi-bin/search/search.cgi?q=%83V%83F%83%8B%83X%83N%83%8A%83v%83g&andor=OR&sf=0&H=&view=table&all=on&shw=
0003login:Penguin
2007/07/10(火) 23:20:21ID:qGthZdMEbashで始めるシェルスクリプト基礎の基礎 @IT
http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08a.html
シェルスクリプト(Bash)入門 CYBERAM Documents Project
http://cyberam.dip.jp/linux_command/shellscript.html
IBM developerWorks
実例でわかるsed
http://www-06.ibm.com/jp/developerworks/linux/010202/j_l-sed1.html
http://www-06.ibm.com/jp/developerworks/linux/010216/j_l-sed2.html
http://www-06.ibm.com/jp/developerworks/linux/010223/j_l-sed3.html
実例でわかるawk
http://www-06.ibm.com/jp/developerworks/linux/010330/j_l-awk1.html
http://www-06.ibm.com/jp/developerworks/linux/010413/j_l-awk2.html
http://www-06.ibm.com/jp/developerworks/linux/010622/j_l-awk3.html
コマンドラインからのグラフィックス操作
http://www-06.ibm.com/jp/developerworks/linux/031031/j_l-graf.html
洗練されたPerl: MP3とPerlで遊ぶ
http://www-06.ibm.com/jp/developerworks/linux/040319/j_l-cpmp31.html
http://www-06.ibm.com/jp/developerworks/linux/040402/j_l-cpmp32.html
0004login:Penguin
2007/07/14(土) 09:56:17ID:42ZxWwqP0005login:Penguin
2007/07/14(土) 11:17:49ID:29sQfd47nkf とか iconv とか。
0006login:Penguin
2007/07/14(土) 22:31:28ID:Lb+uQxni該当するファイルがファイルシステム上にある場合はそのファイルが変わりに
引数として渡されるみたいですが、ワイルドカード自体を取得したいのです。
何か方法はないでしょうか?
ちなみにダブルクォーテーションをつければ展開されないのは知っていますが、面倒で。。
(例)
$ test.sh *.txt
$ echo $1
とするとカレントにあるXXX.txtを表示するのではなく
「*.txt」を表示したいのです。
0007login:Penguin
2007/07/14(土) 22:53:16ID:29sQfd47呼ばれるスクリプトの側でなんとかしたいってことなら
無理だよ。
0008login:Penguin
2007/07/14(土) 23:13:50ID:Lb+uQxniそんな気はしていましたが、そうですか。。
残念です。
0009login:Penguin
2007/07/14(土) 23:26:42ID:29sQfd47$ set -o noglob
$ test.sh *.txt
とか。
0010login:Penguin
2007/07/15(日) 05:00:56ID:OzInTFfntest.sh '*.txt'
(シングルコーテーションならてんかいされないはず)
0011login:Penguin
2007/07/15(日) 11:22:44ID:oGW94xFnおまけの関連スレ
シェルスクリプト相談室
http://pc11.2ch.net/test/read.cgi/tech/1112553783/
awkについて語るスレ $2
http://pc11.2ch.net/test/read.cgi/tech/1172242542/
0012login:Penguin
2007/07/15(日) 12:37:56ID:llPpP8sTよく仕様がわからんが、スクリプトの多段階呼び出しで展開されたくないんだったら、
$ test.sh @.txt
みたいに、擬似ワイルドカード指定指定しておいて
使ううときに、
fs=`eco $1 | sed 's/@/*/'`
echo $fs
0013login:Penguin
2007/07/15(日) 22:24:45ID:ZpXAubZ6complete とかで、補完のルールを作れるんじゃないか?
bashで補完スレ [UNIX板]
http://pc11.2ch.net/test/read.cgi/unix/1013019416/
0014login:Penguin
2007/07/16(月) 12:28:16ID:MK2VLXxK/homeの中にある複数のファイル・ディレクトリーをrm -rf したいのですが
/home/hogeとlost+found だけは消したくないので
何とかそれ以外を消す方法をご教示頂きたいのですが
おしえてたもれ
0015login:Penguin
2007/07/16(月) 13:05:49ID:fC+1yCpQshell script関係ないが、lsでリストとって、リストから削除したくないファイル・ディレクトリを削除し、
その後 rm -rf `cat 〜` なんかするのが間違いなくて確実だとおもー。
0016login:Penguin
2007/07/16(月) 13:13:37ID:hTbLQxc+bashだったら、GLOBIGNORE="hoge:lost+found" に賭けてみたまえ
0017login:Penguin
2007/07/16(月) 13:32:26ID:xW/HZyHjその後戻せばいいのでわ
0018login:Penguin
2007/07/16(月) 21:41:14ID:J/qZmNrt0019login:Penguin
2007/07/17(火) 03:37:44ID:I2w4SVYdどうやればいいでつか?
0020login:Penguin
2007/07/17(火) 10:02:57ID:ZxaQD0ZF0021login:Penguin
2007/07/18(水) 08:18:48ID:Dw+iZryL遅くなりましたが、ありがとうございます。
試してみたいと思います。
0022login:Penguin
2007/07/18(水) 16:34:40ID:cvC9pUm6ありがとう。
できまちた。
0023login:Penguin
2007/07/19(木) 07:38:39ID:gg1Is+TJ�dクス
とりあえず、試験機でゴリゴリしてみます
0024login:Penguin
2007/07/19(木) 07:41:44ID:gg1Is+TJその方法でやってみたいと思います
0025login:Penguin
2007/07/20(金) 01:54:45ID:bZea7ZdA厳密さは求めていません。暴走防止程度です。
(因みにLinux初心者のプログラマです、あまり複雑な概念は未だ理解できていないと思います。
今は大体こんな感じでやろうとしています、
(sleep 10; kill $$)&
時間制限を設けたいコマンド
これだと、時間内に終了しなかったとき、スクリプトのみ終了し、実際に終了させたいコマンドは生き残ります。
時間内に終了したときにkillさせないために最後に kill `jobs -p` すると「(sleep 10; kill $$)&」は終了しますが、sleepだけが残ります(自然消滅はする
だからといって kill 0 とするとこのスクリプトの呼び出し元まで死んでしまいます。
プロセスを kill するときに、その子も殺せればいいんですが如何でしょうか。
0026login:Penguin
2007/07/20(金) 02:25:54ID:zucTG+iZps --ppid とか pstree -p とかで
子の pid を調べれば
kill できると思う。
0027login:Penguin
2007/07/20(金) 07:34:06ID:0zbWXhyqCPU使った時間になっちゃうけど。
0028login:Penguin
2007/07/20(金) 13:11:40ID:VbE5NJtk0029login:Penguin
2007/07/22(日) 01:17:56ID:MkzMxIYhpstree -p からpidだけ取り出す方法が分かりません。
ps --ppid の再起で殺すようにしてみましたが思い通り動いてくれません。
間違えている可能性は大いにありますが。
>>27
CPU時間でも構いません。寧ろその方が良いかもしれません。
ありがとうございます。調べてみます。
>>28
でしょうね。
0030login:Penguin
2007/07/24(火) 02:36:44ID:TdZoIfh3% pstree -p 親PID
親cmd(親PID)-+-子cmd(子PID)
と表示されるんだから、
% pstree -p 親PID | perl -nle '/親PID\)[^\(]+\((\d+)\)/ && print $1'
子PID
とならないかな?awkでもsplitを使えば同じようにできると思う。
そもそもperl使うならpstreeもkillも内部で呼び出せば済むけど。
それ以前にプロセスをアレコレする関数かmodがあるんだろうな...
0031login:Penguin
2007/08/04(土) 23:01:23ID:prsNz29Aawk -F'|'
ではパイプとみなされてしまいます
0032login:Penguin
2007/08/04(土) 23:37:42ID:dhi36EzE% echo 'a|b|c' | gawk -F'|' '{print $2}'
b
0033login:Penguin
2007/08/05(日) 03:46:06ID:a+1tcmkL-F'[|]' とか
0034login:Penguin
2007/08/05(日) 23:10:51ID:ftJrAaPL非rootのアカウントからシェルを実行して
規定のHDDをマウントしたいと思っています。
問題は非rootなのでmountの実行権が無い点です。
sudo は設定方法がよく分からないので、
もちょっと簡単なやり方ないかと探しているのですが
何かよい方法ないもんでしょうか?
スクリプトの中でrootでログインして、そのまま
実行してほしい。(passwd入力はOK)
ちなみにSuSE 10.2を使ってます。
0035login:Penguin
2007/08/05(日) 23:39:27ID:YQ3bjemYsudo の設定くらいわかれ。
そんなに難しくないよ。
0036login:Penguin
2007/08/06(月) 01:50:25ID:xhWrZGpQいかん、だるい。
■ このスレッドは過去ログ倉庫に格納されています