1 名前:名無しさん@お腹いっぱい。 [2012/11/15(木) 18:57:33.11 ] シェルスクリプトの総合スレです。 □お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。 FreeBSDユーザは/bin/shの正体がashなので注意。 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。 src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sh/ heirloom.sourceforge.net/sh.html ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) ・シェルスクリプトのことをシェルってゆーな □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも awkまたはperlの方が適した処理にはそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 □回答者への注意事項: ・シェルスクリプトでの処理方法を質問しているのに、よくわからずに 「そういうのはperl使いましょう」と回答するのはやめましょう。 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。 前スレ シェルスクリプト総合 その20 toro.2ch.net/test/read.cgi/unix/1339083351/
210 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/14(木) 13:05:11.46 ] evalって知ってる?便利だよ
211 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/14(木) 13:12:07.63 ] >>210 > $CMD 13 32の行は変更不可。 evalも使用不可
212 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/14(木) 14:38:40.47 ] >>211 CMDの中にeval入れれば行けるだろ CMD="eval print ..以下略
213 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/16(土) 14:38:00.54 ] >>212 それでOKでした。
214 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/16(土) 21:58:07.02 ] >>211 >>211 >>211
215 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/17(日) 00:35:16.20 ] ももクロはズリネタ探しをしている人には理解出来ないよ
216 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/17(日) 00:51:10.81 ] awkのprintで 1, print $2 2, print \$2 3. print\ \$2 1、2は2列目て事だと思うけど3てどうなるの?
217 名前:215 mailto:sage [2013/02/17(日) 01:31:05.17 ] あれ・・盛大に誤爆ってたwごめん
218 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/17(日) 02:55:22.76 ] >>214 呼び出すところが変わってないから良いんじゃないの?
219 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/20(水) 21:18:41.67 ] 2chの画像スレ開いて、Ctrl+aでコピーしたのをdl.txtにコピーしておいて そのカレントフォルダでこれ実行すると、びっくりするほどユートピア grep -E "(^http|^ttp)" dl.txt |sed -e "s/http/ttp/g; s/ttp/http/g"| wget -A jpg,png,gif -N -i -
220 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/20(水) 21:43:00.53 ] 昔そういう事やってたけど グロ画像が紛れ込んじゃうからやめたよ 安心してシコシコできない
221 名前:219 mailto:sage [2013/02/20(水) 21:54:17.39 ] >>220 それなんだよ...URLのブラックリストとか出来ないかな?まぁ出来ても遅くなりそうだけど
222 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/20(水) 22:04:29.90 ] ブラックリスト作っておいてgrep -vで除外するくらいかな? いちいちグロ画像調べてNG登録するのが嫌でね…
223 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/20(水) 22:48:10.03 ] grepしてからsedですか、そうですか
224 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/21(木) 00:53:50.25 ] >>221 専ブラ使えよ。 グロってレスがついてたら、モザイクかけてくれたり。
225 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/21(木) 01:03:43.88 ] >>219 スレとってくんのもwgetでいいだろ。なぜに手動。
226 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/21(木) 10:19:46.09 ] >>224 >グロってレスがついてたら、モザイク それ便利そうだな! どこの専ブラ? うちはかちゅ〜しゃ使ってるけど
227 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/21(木) 13:17:14.46 ] >>220 いやいや、落としたら、シコシコする前に、まず賢者モードで分類とか整理しろよ。
228 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/21(木) 15:56:58.86 ] >>227 モード切替どうやってするつもりだよ
229 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/21(木) 21:47:15.77 ] >>226 2chmate
230 名前:名無しさん@お腹いっぱい。 [2013/02/22(金) 12:12:03.87 ] シェルスクリプト内でtarアーカイブ化するとき、アーカイブ名に変数を指定したいのですが、 エラーが出てtarが生成されません。なにが間違っているか教えてください。 strArch="~/Desktop/a.tar" /usr/bin/tar cf ${strArch} 1.jpg 2.jpg 3.jpg と書くと /usr/bin/tar: ~/Desktop/a.tar: open 不能: No such file or directory /usr/bin/tar: Error is not recoverable: exiting now というエラーが出ます。 一方、 /usr/bin/tar cf ~/Desktop/a.tar 1.jpg 2.jpg 3.jpg と書くと正常にa.tarが生成されます。
231 名前:230 mailto:sage [2013/02/22(金) 12:13:52.84 ] 環境はcygwinで、シェルはbashです。
232 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/22(金) 12:40:05.30 ] >>230 変数の中のチルダは展開されない。 $HOME/Desktop/a.tar を使え。
233 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/02/22(金) 13:01:39.80 ] >>232 できました! ありがとうございました。