[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/10 01:32 / Filesize : 243 KB / Number-of Response : 985
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト総合@LINUX Part4



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]
宿題は自分でやりなさい。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<243KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef