- 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あたりに色々と。
- 281 名前:login:Penguin mailto:sage [2008/06/30(月) 22:51:24 ID:LE+io00E]
- シェルからwindowsにrshのような感じでコマンドを打ちたいんですが、
telnetを使ったりしてどうにかならんでしょうか?
- 282 名前:login:Penguin mailto:sage [2008/06/30(月) 22:51:47 ID:LfTOpvVG]
- >>281
expect
- 283 名前:login:Penguin mailto:sage [2008/06/30(月) 22:55:37 ID:pVpnujlR]
- >>279
スクリプト以前にひょっとしてシェルプロンプトで何も叩いた事がないほど初心者?
- 284 名前:login:Penguin [2008/06/30(月) 23:08:10 ID:mYyaCshH]
- 279です。
>>280 その言葉真摯に受け止めます。ですが今後努力する所存です。 すいません。諸事情で時間がない中でしたのでこちらで質問させて頂きました。 参考情報ありがとうございます。 >>283 簡単なコマンドなら叩いたことはありますがシェルは全くの初心者です。 どうか宜しくお願い致しますm(__)m
- 285 名前:login:Penguin mailto:sage [2008/06/30(月) 23:13:41 ID:LE+io00E]
- >>282
家のfedoraでインストールして試してみてexpectすげーと思ったけど、業務用のredhat 3 には多分入ってないです・・・ ありがたいですけど、他にないですか?
- 286 名前:login:Penguin mailto:sage [2008/06/30(月) 23:35:01 ID:EeC8VQhU]
- >>285
Expect.pmとかopen3.rbとか・・・ 最悪openptyで相当品を書けばいい。tccで書けばそれでもスクリプト。
- 287 名前:login:Penguin mailto:sage [2008/06/30(月) 23:41:54 ID:pVpnujlR]
- >>284
それじゃまずgrepを使ってあるユーザーの受信メールの行と送信メールをどうやったら切り出せるか 試行錯誤し、それが出来たらwc。 ひっかかったらgrepのmanページでまず回答を探す努力を。 awkとかのほうが色々柔軟性があるけどたぶん使った事無いでしょう。 あと>>3のリンク先をいくつかながめるといいと思う。
- 288 名前:login:Penguin [2008/06/30(月) 23:48:15 ID:hskJhfYi]
- 初心者です。お願いします。
cutコマンドはファイルのみ使えますか? 変数にも使えるでしょうか。 変数に格納してある文字列からcut.grepを使いたいんですが。
- 289 名前:login:Penguin mailto:sage [2008/06/30(月) 23:49:01 ID:mYyaCshH]
- >>287
ご教示いただいた方法にて調べてみます。本当にありがとうございますm(__)m
- 290 名前:login:Penguin mailto:sage [2008/06/30(月) 23:54:15 ID:LE+io00E]
- >>286
それらはアプリでしょうか? インストールが必要なのはNGなんです。 標準的なコマンドで実装できれば・・
- 291 名前:login:Penguin mailto:sage [2008/07/01(火) 00:23:35 ID:7AvBIvdb]
- >>278
plsとm3uは多くのプレイヤーが使ってる形式のようですから お使いのプレイヤーにその機能がないか確認してはいかがでしょう。 プレイヤーをお使いでないならこういうものもあります。 ttp://freshmeat.net/projects/fapg/ ビルドにuriparserを求められますがconfigureに--disable-xspfを つけると要らなくなります。
- 292 名前:login:Penguin mailto:sage [2008/07/01(火) 00:37:40 ID:F/ZP/0+B]
- >>278
外してるかもしれないのですがこれだけで十分ですかね #!/bin/sh streaming_name=$1 cat <<END >$streaming_name.pls [playlist] File1=www.example.com:8000/$streaming_name Title1=nina Length1=-1 NumberOfEntries=1 Version=2 END cat <<END >$streaming_name.m3u www.example.com:8000/$streaming_name END
- 293 名前:login:Penguin mailto:sage [2008/07/01(火) 01:20:48 ID:DL3owd7E]
- >>288
$echo 1111 bbbbbb | cut -f1 -d ' ' で1111と表示できるからcutにパイプして echo $var | cut -fx で出来る 変数にファイル名を入れてる場合なら cut -fx < $filename でおk あとはエスパーじゃないんで分からん
- 294 名前:login:Penguin mailto:sage [2008/07/01(火) 07:30:47 ID:/iSyGj3E]
- >>288
echoしてリダイレクト。基本。
- 295 名前:login:Penguin [2008/07/01(火) 10:01:29 ID:ckhBGtgF]
- 質問です。
変数の中に=があったらそれまでの文字を出力したいんですが、 例)$1に abc=defg -> abcのみ出力 $2に abcdefgh -> 何もせず こういった場合、abcを取り出す(=の前までCUT?)事はできますか? if(( grep '=' $1 )) then cut〜 みたいになるんでしょうか。お願いします。
- 296 名前:login:Penguin mailto:sage [2008/07/01(火) 10:12:23 ID:wSJ46Tmn]
- >>295
case "$1" in *"="*) echo "$1" | sed 's/=.*//' ;; esac
- 297 名前:login:Penguin mailto:sage [2008/07/01(火) 10:25:43 ID:sgtpdcHD]
- bashで
x=$1 p=${x%=*} [ $x = $p ] || echo $p
- 298 名前:login:Penguin [2008/07/01(火) 10:28:44 ID:ckhBGtgF]
- >>296
即レス有難うございます!お陰様で出来ました^^
- 299 名前:login:Penguin mailto:sage [2008/07/01(火) 10:37:02 ID:wSJ46Tmn]
- >>297
それだと $1 が「/tm*/=xx」とかのときうまくいかない。
- 300 名前:login:Penguin mailto:sage [2008/07/01(火) 10:58:55 ID:HD46/kcy]
- >>295
>(=の前までCUT?) >>296 で sed の例が出てるけど cut -d "=" -f 1 とか awk -F "=" '{print $1}' とかでもできる。
- 301 名前:login:Penguin [2008/07/01(火) 11:57:13 ID:ckhBGtgF]
- >>296,>>297,>>300の皆さん有難うございます!
- 302 名前:login:Penguin [2008/07/01(火) 12:12:55 ID:ckhBGtgF]
- すみません、力を貸して下さい。
今やらなければならないのが、lsuser ALL を叩いて、 出力結果を見出し付で出力する(体裁を整える)です。 現在見出しの部分でつまずいています。 bin id=2 pgrp=bin groups=bin,sys,adm home=/bin guest id=100 pgrp=usr groups=usr home=/home/guest などを user_name id pgrp groups bin 2 bin bin,sys,adm guest 100 usr usr と言った感じです。=の前後でCUTし、前部分を見出しに、 後部分を見出しの下に出したいです。難しいのが、既に見出しにidがあるのに また見出しにidが追加されてしまうんです。 どなたかサンプルを作っていただく、またはアドバイスを頂けますでしょうか。 よろしくお願いします。長文・乱文すいません。
- 303 名前:login:Penguin mailto:sage [2008/07/01(火) 12:33:08 ID:wSJ46Tmn]
- >>302
perl か何かで書いた方が早いと思う。
- 304 名前:login:Penguin [2008/07/01(火) 12:44:02 ID:ckhBGtgF]
- >>302
アドバイス有難うございます。調べてみます! 書き忘れたんですが、KORNシェルです。
- 305 名前:login:Penguin mailto:sage [2008/07/01(火) 12:46:37 ID:EG1sJMbp]
- 実用的な答が欲しいならもう少し環境を書くべきだ.
bash,sed,awk,perlなどが使えるのかどうかとか. それともシェルだけでアクロバティックにこなしたいのか?
- 306 名前:login:Penguin mailto:sage [2008/07/01(火) 12:50:08 ID:wSJ46Tmn]
- そもそも使ってる OS は何よ。
- 307 名前:login:Penguin mailto:sage [2008/07/01(火) 13:03:02 ID:Arg2/vlJ]
- >>292
ありがとうございます。バッチリでした。 いやー楽になった。っていうか勉強になりました。 みなさん、どういうところで構文を学んでいらっしゃるんでしょう? この手のことについては完全に無学なもので、 どこからどう手をつけていいやら分かりません。
- 308 名前:login:Penguin mailto:sage [2008/07/01(火) 13:21:36 ID:wSJ46Tmn]
- >>307
テンプレくらい読め。
- 309 名前:login:Penguin [2008/07/01(火) 13:31:41 ID:ckhBGtgF]
- 302です。環境はUNIX AIXです。そしてKORNシェルです。
- 310 名前:login:Penguin mailto:sage [2008/07/01(火) 13:39:10 ID:wSJ46Tmn]
- >>309
なら板違い。
- 311 名前:login:Penguin mailto:sage [2008/07/01(火) 13:42:53 ID:F/ZP/0+B]
- IFSに=を加えて行ごとにsetすると簡単
- 312 名前:login:Penguin [2008/07/01(火) 13:48:38 ID:ckhBGtgF]
- >>310さん すいません板違いでしたか。移動します。
>>311さん やってみます。有難うございます。
- 313 名前:login:Penguin mailto:sage [2008/07/01(火) 17:29:52 ID:0HA3LMf0]
- 今日の宿題スレッドはここですか?
- 314 名前:login:Penguin mailto:sage [2008/07/01(火) 20:13:34 ID:sk7tfsLb]
- >>309
そういえばIBMのTivoli agent for Linuxをインスコしようとしたら インストーラーがkshを必要としやがった。
- 315 名前:login:Penguin mailto:sage [2008/07/02(水) 07:58:38 ID:kAlrwjxr]
- >>302
俺には難しかった・・orz 誰か見本よろ
- 316 名前:login:Penguin mailto:sage [2008/07/02(水) 11:59:47 ID:t4E6Zbe3]
- >>302
#!/bin/sh st=true while read s do rctop=null rc=null for n in $s ;do if [ $st = true -a "$rctop" = "null" ] ;then rctop=user_name fi if [ "$rc" = "null" ] ;then rc=$n else if [ $st = true ] ;then rctopadd=`echo -n $n | cut -d '=' -f 1` rctop=`echo $rctop $rctopadd` fi rcadd=`echo -n $n | cut -d '=' -f 2` rc=`echo $rc $rcadd` fi done if [ $st = true ] ;then echo $rctop st=false fi echo $rc done $./shellscript.sh < n.data 理想の動作じゃないだろうが フォーマットをこっちが指定するやり方として…あとは整形の仕方だな
- 317 名前:login:Penguin mailto:sage [2008/07/02(水) 12:18:34 ID:15uy4jBz]
- >>312 で移動するって言ってるんだから
もうここで言ってもしょうがないんでは。
- 318 名前:login:Penguin mailto:sage [2008/07/02(水) 13:02:11 ID:t4E6Zbe3]
- ('A`)スマソ
- 319 名前:login:Penguin [2008/07/02(水) 15:26:35 ID:BlTL/xTh]
- >>316>>317>>318
どこに行っていいかわからなくて、ちょくちょく覗いてましたw >>316を参考にしたら、思ったとおりの動きをしてくれました。 本当に有難いっす。
- 320 名前:login:Penguin mailto:sage [2008/07/02(水) 15:29:18 ID:15uy4jBz]
- さっさと消えろ。
シェルスクリプト総合 その11 pc11.2ch.net/test/read.cgi/unix/1211284684/
- 321 名前:login:Penguin mailto:sage [2008/07/02(水) 18:57:00 ID:iGIzjxTr]
- 質問です。
たとえば、 cat test 1 2 3 4 5 と表示されるシェルスクリプトがあったとして、それを 5 4 3 2 1 と表示させるにはどうしたらいいでしょうか?
- 322 名前:login:Penguin mailto:sage [2008/07/02(水) 18:59:10 ID:15uy4jBz]
- >>321
tac test
- 323 名前:login:Penguin mailto:sage [2008/07/02(水) 19:12:45 ID:iGIzjxTr]
- >>322
即答ありがとうございますっ
- 324 名前:login:Penguin mailto:sage [2008/07/02(水) 23:09:21 ID:tYZaCcmU]
- >>322
しっ、知らなかった... なんつー冗談ネーミング。 いつからあるの? 発祥はgnuかな。 Wikipediaにも 載ってない。
- 325 名前:login:Penguin mailto:sage [2008/07/02(水) 23:11:36 ID:tYZaCcmU]
- >>324
あ、あったわ。 tac(Unix)であった。
- 326 名前:login:Penguin mailto:sage [2008/07/03(木) 07:56:36 ID:HJXPhQch]
- Terrible-monster Attacking Crew
- 327 名前:login:Penguin mailto:sage [2008/07/04(金) 00:23:17 ID:Z8+RYNGO]
- cat tac
most more less head tail cut paste pgp gpg mail nail 言葉遊び系のコマンドペアって案外少ないんだな。
- 328 名前:login:Penguin mailto:sage [2008/07/04(金) 01:21:52 ID:7gcupJvt]
- if fi case esac
#ここはコマンド以前にシェルスクリプト スレだよな
- 329 名前:login:Penguin mailto:sage [2008/07/04(金) 01:24:49 ID:9pO2naUI]
- esac にはびっくりしたなーもー
- 330 名前:login:Penguin mailto:sage [2008/07/04(金) 05:28:59 ID:AeTu0vqB]
- 逆文字でネストを表現するのはお手本となる言語があった気がする
- 331 名前:login:Penguin [2008/07/04(金) 08:23:27 ID:jR7hqKfT]
- プロセスをkillするシェルを作成しましたが、そのシェルそのものも引っかかってしまいます。
下記を実行すると、test のプロセスはKillされますが、 ./kill_test.sh: line 6: kill: (17914) - No such process と、エラーが出ちゃいます。 どのようにすれば、そのシェルそのものを検知しなくできますでしょうか。 例えば、test というプロセスをKillするプログラム #!/bin/bash # kill_test.sh ID=ps axo pid,cmd | grep test | awk '{print $1}'` if [ -n "$ID" ]; then kill $ID fi 実行結果 test のプロセスはKillされますが、エラーも出る ./kill_test.sh: line 6: kill: (17914) - No such process
- 332 名前:login:Penguin mailto:sage [2008/07/04(金) 08:32:51 ID:dZZeWoZr]
- >>331
pkill test
- 333 名前:login:Penguin mailto:sage [2008/07/04(金) 08:55:04 ID:jR7hqKfT]
- ありがとうございます。
プロセスはKillされますが こんどは Terminated と出ちゃいますが... #!/bin/bash # kill_test.sh pkill test
- 334 名前:login:Penguin mailto:sage [2008/07/04(金) 16:17:24 ID:8eslOrWY]
- >>331
grep -v $$ とかやって シェルスクリプトの pid を除く。 grep -v grep とか grep [t]est とかやって grep の pid を除く。
- 335 名前:login:Penguin mailto:sage [2008/07/04(金) 23:59:25 ID:/fP/UZlP]
- most なんて初めて知ったよ。
ttp://www.jedsoft.org/most/
- 336 名前:login:Penguin mailto:sage [2008/07/05(土) 05:45:46 ID:zldIi++e]
- >>335
同じく support multiple windowsの意味がわからんwww
- 337 名前:331 mailto:sage [2008/07/05(土) 08:21:10 ID:f1ZF3ker]
-
ps axo pid,cmd | grep test| grep -v ' grep' | awk '{print $1}' で、できました。 m(._.*)mペコッ pkill 知りませんでした。pgrepも知ることができ感謝です
- 338 名前:login:Penguin mailto:sage [2008/07/05(土) 15:47:51 ID:9A3h5Tdb]
- >>335
漏れも漏れも can scroll left and rightの意味がわからん。
- 339 名前:login:Penguin mailto:sage [2008/07/05(土) 16:46:32 ID:QzBtt5r9]
- 文字どおり左右にもスクロールできる、ってことじゃないのか
複数のファイルが見られるとか書いてあるし ttp://www.slackbook.org/html/file-commands-pagers.html
- 340 名前:login:Penguin mailto:sage [2008/07/05(土) 19:44:37 ID:wIp47NAo]
- perlとかrubyとかpythonとかはシェルスクリプトよりも確かに優れてる面もたくさんあるけど、
classpathの設定とかで混乱する手間と暇を総合的に考えると、単純なシェルスクリプトの範囲内で 問題を解決する能力がある人のほうが貴重。
- 341 名前:login:Penguin mailto:sage [2008/07/06(日) 00:07:36 ID:H+bXS9E7]
- >>340
めんどいからさっさと結論を出すと、適材適所だな。 次の方どうぞ。
- 342 名前:login:Penguin mailto:sage [2008/07/06(日) 00:17:49 ID:KiLBqQPD]
- >>340
> classpathの設定とかで混乱する手間と暇 ちょっとまてw。perlとかrubyとかpython使ったことないだろ? java男ご乱心。
- 343 名前:login:Penguin mailto:sage [2008/07/06(日) 00:19:29 ID:H+bXS9E7]
- >>342
例えばperlとかには@INCとかあるから、その辺のことを話したいんだろうと理解。 行間くらい読んでやれ。
- 344 名前:login:Penguin mailto:sage [2008/07/06(日) 00:29:37 ID:KiLBqQPD]
- >>343 行間読んでJython,Jrubyみたいな話かとおもた。あんなキモいもん認めん。
- 345 名前:login:Penguin mailto:sage [2008/07/06(日) 00:31:39 ID:fSJWsnfA]
- 作るスクリプトが動かされる環境を予測できて,ちゃんと互換性をもたせる能力があればperlでもgnu依存でもなんでもいいよ.
- 346 名前:login:Penguin mailto:sage [2008/07/06(日) 00:33:14 ID:KiLBqQPD]
- それでもjavaライブラリ依存は認めない。
- 347 名前:login:Penguin mailto:sage [2008/07/06(日) 20:32:11 ID:Bp8Wp40b]
- テキスト処理について質問させてください
SQLを格納した以下のようなログファイルがあります。 select * from table1 where 名前='田中' select * from table1 where 名前='佐藤' and 年齢 > 20 select * from table1 where 名前='鈴木' これの条件部分('田中'とか'佐藤'の部分)を'*'に一括で変更する方法はありますか? 環境としてbash、awk、sedは使えますがperlは使えません。 よろしくお願いします
- 348 名前:login:Penguin mailto:sage [2008/07/06(日) 21:12:08 ID:9FSHXxTH]
- $sed "s/名前='.*'/名前='*'/g" hoge > foo
$mv foo hoge
- 349 名前:login:Penguin mailto:sage [2008/07/06(日) 21:36:34 ID:7sKhRIVr]
- >>348
$ sed -i "s/名前='.*'/名前='*'/g" hoge
- 350 名前:login:Penguin mailto:sage [2008/07/06(日) 21:42:16 ID:9FSHXxTH]
- そのオプションマニュアルに載ってないな、初めて知った勉強になりました
- 351 名前:login:Penguin mailto:sage [2008/07/06(日) 22:12:09 ID:ksmXqbT3]
- 再起動(shutdown -r now)後、
数分後に指定シェルを起動させたいのですが、 何か良い方法ないでしょうか? centos4で、 /etc/rc.local に記述すると即時起動は可能なのですが、 時間指定ができないため悩んでおります。 再起動を行うのが一定時刻ではないので atも使えません。 どなたかお助けくださいませ。
- 352 名前:login:Penguin mailto:sage [2008/07/06(日) 22:14:33 ID:fSYsy/u2]
- >>351
sleep
- 353 名前:login:Penguin mailto:sage [2008/07/06(日) 22:21:54 ID:WvrNzaWB]
- >>348-349
ありがとう
- 354 名前:login:Penguin mailto:sage [2008/07/06(日) 22:28:07 ID:fMUp8CRa]
- >>351
at now + 数 minutes などと /etc/rc.local に書いたらどうだろう。
- 355 名前:351 mailto:sage [2008/07/06(日) 22:45:55 ID:ksmXqbT3]
- >>352
>>354 サンクスコです!! 試してみます!!
- 356 名前:login:Penguin [2008/07/07(月) 21:33:14 ID:pcTeT086]
- uClinux2.6上のBusyBoxのmshというシェルで質問です。
BusyBoxのバージョンは以下です。 BusyBox v1.4.1 (2008-06-02 10:22:52 CST) Built-in shell (msh) mshでループ処理をさせていると、いつのまにか Shell input nested too deeply というエラーになり、スクリプトのプロセスが死んでしまうのですが、 何か良いやり方はあるでしょうか。 やりたい事は、アプリケーションの裏方で、1秒毎にサーバに pingを打つなどしてネットワークが見えているかを確認し、 通じないならリカバリをするポーリング処理です。 autorun.sh内からsrvwatch.sh &として起動しています。 srvwatch.sh -------- #!/bin/sh server=192.168.0.1 while [ 継続条件 ] do ping $server -c 1 if [ $? != 0 ]; then # ( pingが通じない時の処理 ) fi sleep 1 done 最悪、他のシェルが使えない事もないのですが、mshで解決できれば それに越したことはないので、よろしくお願いします。
- 357 名前:login:Penguin mailto:sage [2008/07/07(月) 21:34:48 ID:2WJ5nXyr]
- >>356
キリの良いところで別のスクリプトにして子プロセスとして動かせば?
- 358 名前:login:Penguin mailto:sage [2008/07/07(月) 21:44:55 ID:pcTeT086]
- >>357
なるほど。 例えばアプリケーション内のループをトリガにできれば問題を回避できそうですね。 その方向で検討してみます。
- 359 名前:login:Penguin mailto:sage [2008/07/13(日) 16:02:53 ID:XKteJijz]
- quotaのedquotaだとテキスト形式でエディタで編集しなきゃいけないですが、
コマンドのみで指定ユーザを指定容量に変更、ってどうすればできるでしょうか?
- 360 名前:login:Penguin mailto:sage [2008/07/13(日) 18:28:58 ID:Ixz1lkH8]
- 実は、ここは「シェルスクリプト総合」スレ。
- 361 名前:login:Penguin mailto:sage [2008/07/13(日) 23:41:37 ID:2nzKAI8F]
- a,1
a,2 b,3 c,1 d,15 d,1 d,1 e,3 こんな感じのファイルを、1カラム目でユニークにして、2カラム目は1カラム目の値ごとに合計を出したい という場合なんですが、シェルではむずいですか? a,3 b,3 c,1 d,17 e,3 この結果を求めてます
- 362 名前:login:Penguin mailto:sage [2008/07/14(月) 00:16:50 ID:pAKMtVeu]
- いいえ 容易です
- 363 名前:login:Penguin mailto:sage [2008/07/14(月) 08:20:36 ID:Nv/tP5Or]
- >>361
cutとsort、uniqでキーのリストを作る。 grepとcutでキーごとの値を得る。 それをexpr
- 364 名前:login:Penguin mailto:sage [2008/07/14(月) 16:52:54 ID:6AUtGr7x]
- >>361
awk 使えば〜
- 365 名前:login:Penguin mailto:sage [2008/07/14(月) 18:28:30 ID:Mh/R7fAz]
- >>361
awk -F, '{dat[$1]+=$2}END{for(i in dat) print i","dat[i]}' hoge
- 366 名前:login:Penguin mailto:sage [2008/07/17(木) 15:31:48 ID:8xNJ++Yc]
- 指定した変数の中に、ある文字列があれば〜
という条件式、どのように書けばいいですか。
- 367 名前:login:Penguin mailto:sage [2008/07/17(木) 15:59:24 ID:RxW1jeOx]
- #!/bin/sh
hoge=$1 hogehoge=$2 if [ `echo $hoge | grep $hogehoge` ]; then echo "$hogehoge exist in $hoge" fi exit 0
- 368 名前:login:Penguin mailto:sage [2008/07/17(木) 16:09:53 ID:RxW1jeOx]
- と思ったけど >>228 のほうがいいな
- 369 名前:login:Penguin mailto:sage [2008/07/17(木) 20:02:22 ID:8xNJ++Yc]
- >>367
ども ですが、ひとつ質問です たとえばhogeにunko is hogehogeにu とした場合、ちゃんと動かないですがこれはどう扱えばいいですか。
- 370 名前:login:Penguin mailto:sage [2008/07/17(木) 20:35:02 ID:IIv1XTjU]
- よろしくおねがいします
bkfile=$dest/$2.$timestamp.tar.gz tar cpzf $bkfile $1 >/dev/null 2>&1 if [ $? != 0 -o ! -e $bkfile ]; ここのでの if [ $? != 0 -o ! -e $bkfile ]; 意味を教えて下さい、エロイヒト
- 371 名前:login:Penguin mailto:sage [2008/07/17(木) 20:49:36 ID:wB0Vu+2C]
- >>370
cyberam.dip.jp/linux_command/shellscript/shellscript_main.html
- 372 名前:login:Penguin mailto:sage [2008/07/17(木) 21:05:28 ID:6zoBsCIm]
- それも、変数に 'unko is' を入れられない糞スクリプトだね。
- 373 名前:login:Penguin mailto:sage [2008/07/17(木) 21:10:39 ID:IIv1XTjU]
- $? != 0 -o
は終了ステータス ! -e $bkfile はファイルで無い場合 すなわち 終了ステータスがO以外、且つ、bkfileがファイルの場合 ということでok?
- 374 名前:login:Penguin mailto:sage [2008/07/17(木) 21:14:48 ID:ZrSZoUoY]
- >>372
unkoは入れるものじゃなくて出すものだからな #/bin/sh hoge=$1 hogehoge=$2 if [ "`echo $hoge | grep $hogehoge`" = "$hoge" ]; then echo "$hogehoge exist in $hoge" fi
- 375 名前:login:Penguin mailto:sage [2008/07/17(木) 21:21:49 ID:wB0Vu+2C]
- >>373
終了ステータスが0以外、もしくは、$bkfileファイルが存在しない場合
- 376 名前:login:Penguin mailto:sage [2008/07/17(木) 21:27:09 ID:IIv1XTjU]
- >>375thx
if [ $? != 0 -o ! -e $bkfile ]; [ $? != 0 ]且つ [-o ! -e $bkfile ] -oの意味と [ $? != 0 -o ! -e $bkfile ]; スクリプトの区切り方がわかんらんのですが・・・ 面倒かけてスマソ よろしくお願いします
- 377 名前:login:Penguin mailto:sage [2008/07/18(金) 00:26:56 ID:djfoTRoL]
- >>374
助かりましたどうもです。
- 378 名前:login:Penguin mailto:sage [2008/07/18(金) 00:47:41 ID:JinxhkI+]
- >>376
man test で -o を探せ。
- 379 名前:login:Penguin mailto:sage [2008/07/23(水) 12:37:01 ID:AKylUJRP]
- 「あるディレクトリにAA.bbというファイルがなかったら
AA.ccというファイルを削除する」 これをどう書いたらいいか教えてください
- 380 名前:login:Penguin mailto:sage [2008/07/23(水) 12:42:19 ID:XuVewefN]
- [ ! -f AA.bb ]
rm AA.cc
- 381 名前:login:Penguin mailto:sage [2008/07/23(水) 12:43:53 ID:x1Crms/C]
- 宿題は自分でやりなさい。
|

|