シェルについて殆ど無知なのでお聞きしたいのですが
(質問内容自体シェルの内容に含まれないのかも知れませんが)、

if ( -e $xxx_DIR/$CHK_OK1 ) then
rm $xxx_DIR/$CHK_OK1

と有った場合、$xxx_DIRで指定されたディレクトリに$CHK_OK1で指定されたファイル
が有れば、そのファイルを消す。と言う解釈でOKでしょうか?

A 回答 (3件)

OKです。


No.2 の回答にある -s とは、「ファイルが存在し、かつサイズが0より大きい」ことを判定するためのものなので、これだと0バイトのファイル(ごく普通に存在します)はチェックできないことになってしまいます。
用途にもよりますが、普通は -e でいいのではないでしょうか?

なお、UNIX によっては、-e のないものもあります。その場合は、-r(読み取り可能なら真)などを使うといいでしょう。
読み取り可能に設定しないファイルもたまにあるので、万全を期すなら、-w(書込み可能)や -x(実行可能)も OR 条件で指定してチェックするといいです。
    • good
    • 0
この回答へのお礼

有り難うございます。
今仕事で急にシェルを組むことになって、解読していたんですが
前後の文を読んで「こうじゃないかなー」との推測しかつかなかったもので。
そしてさらに詳しい解説までしていただいて、本当に有り難うございます。

お礼日時:2001/10/16 12:48

ファイルの存在を確認するのならば [-s] がいいと思います。


こんな感じでどうでしょうか。

#!/bin/sh
dir="/test/"
file="test.txt"

if [ -s $dir/$file ]
  then
  rm $dir/$file
  echo "OK"
else
  echo "ERR"
fi
    • good
    • 0

OKだと思います。


勿論消えるのは$CHK_OK1に指定されているファイルで、$xxx_DIRで指定されているディレクトリごと削除されるわけではありません。

#尚、この質問の内容はシェルスクリプトに含まれますよ。(^_^)
    • good
    • 0
この回答へのお礼

有り難うございます。
今仕事で急にシェルを組むことになって、解読していたんですが
前後の文を読んで「こうじゃないかなー」との推測しかつかなかったもので。

お礼日時:2001/10/16 12:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QXXX.pagファイルとXXX.dirファイルの中身が見たい。

拡張子が「pag」「dir」のファイルの中身を見たいのですが、どのようなコマンドを使えば
読むことが可能でしょうか?

使用しているOSは、Solaris8です。

宜しくお願いします!

Aベストアンサー

#3の方の言われるとおり,dbm形式のデータベースファイルだと思います。
dbmのデータとして読み出したいのであれば,下のようなPerlスクリプトを使えば出来ます。

#!/bin/perl
dbmopen(%dbmassoc, 'データベース名', undef);
while (($key, $val) = each %dbmassoc) {
print $key . "\t" . $val . "\n";
}
dbmclose(dbmassoc);

'データベース名'のところには,例えば /etc/aliases.pag や /etc/aliases.dir なら '/etc/aliases' を入れます。
このスクリプトでは,キーと値をタブで区切って出力しています。

そうじゃなくて,pagファイル,dirファイルそのものの中身が読みたいのであれば,バイナリビューアーなどを使えばよいと思います。私はbviewやhexeditなどのツールを使っています。OSに標準で含まれているツールではないので,どっかから探しだしてきてインストールしてください。

#3の方の言われるとおり,dbm形式のデータベースファイルだと思います。
dbmのデータとして読み出したいのであれば,下のようなPerlスクリプトを使えば出来ます。

#!/bin/perl
dbmopen(%dbmassoc, 'データベース名', undef);
while (($key, $val) = each %dbmassoc) {
print $key . "\t" . $val . "\n";
}
dbmclose(dbmassoc);

'データベース名'のところには,例えば /etc/aliases.pag や /etc/aliases.dir なら '/etc/aliases' を入れます。
このスクリプトでは,キーと値をタブで区切って出力...続きを読む

Q起動時DRIVER_IRQL_NOT_LESS_OREQUAL(Smb_driver_sys)

先日ウインドウズ7から10にアップデートした時から起動時ブルーバックでこのメッセージが出るようになりました
対処法がわからず困っています。メッセージをなくす方法教えてください、よろしくお願いします。

Aベストアンサー

OSは違うかもしれませんが、同様のエラーメッセージに対して先日回答しています。
かなり残念な内容ですが、ご参考になれば。
https://oshiete.goo.ne.jp/qa/9067332.html

Qシェルの中から他のシェルを呼び出す

例えば、ひとつのシェルファイル( aaa.sh )の中に、
-------------------------
#!/usr/bin/csh
set HOME=/home/test/tmp
bbb.sh
-------------------------
と記述した場合、bbb.shで変数$HOMEを使いたいと思いましたが、
使えないようです。(HOME: 未定義の変数と表示されます)
どなたか、これ以外の方法で、このように
シェルからほかのシェルを呼び出して、変数も引き継がれるような方法ご存知ないでしょうか?
多分こーやれば、こうなるかも!みたいなご回答でも結構ですので情報提供をお願いします。

どうぞ宜しくお願い致します。

Aベストアンサー

たぶん環境変数は引き継がれます。
setenvを使えばいいように思います?

Qchkファイルの復元

あるドライブのあるフォルダ内の全ファイル(全て動画ファイル)が、chkファイルに変わってしまいました。
スキャンディスク or エラーチェックを途中でやめたのが原因かも知れないのですが・・・。
フォルダ自体もFOUND.000という名の隠しフォルダに変わってしまっています。
が、各chkファイルは拡張子をmpeg等に変えれば元の動画ファイルとして再生可能です。
この場合一括して全ファイルを元の状態に復元することは不可能でしょうか。一つ一つのファイルを真空波動研等で確認しながら拡張子を変えていくしか手がないでしょうか。
OSはWinXPとWin98のマルチブートです。

Aベストアンサー

こんな便利なものもあったりします。
http://www.55555.to/
の一番下のほうにある「極窓」というもの
FOUND.000フォルダ内を指定してから、検索ボタン押して
出てきたファイルをすべて選択→一括変換で拡張子変換
判別可能なものは全て自動で各拡張子に変えてくれます

参考URL:http://www.55555.to/

Q拡張子がCHKのファイルって何ですか?

Windowsがブートしなくなって、別のパソコンにつないでHDDの内容を確認したら、”Found000”というフォルダに”File0000”~”File9999”という名前で、拡張子がCHKのファイルだけになってしまっています。

再インストールするのはかまいませんが、データだけは復元というか取り出したいのですが、何か方法はありませんか?

Aベストアンサー

chkファイルはHDD内でファイルとして正しく認識できなくなってしまった領域を、scandiskの機能でファイルに変換したものです。
元は何らかのファイルだったはずのものですから、それがどういうファイルであるかわかれば、拡張子を変更する事で開ける場合があります。

例えば、jpeg画像のファイルだと目処をつけて、File0000.jpgにしてみるとか。

ただ、全部のファイルの種類を推測するのは現実的に無理です。

ベルギー生活インフォ - Q & A - CHKというファイルの正体。削除しても良いのか。
http://schoten.s11.xrea.com/pc/question/113.html


こちらのツールなどは拡張子を自動判別できるような事が書かれています。私は使った事無いんですが、役に立つかも?

極窓
http://www.vector.co.jp/soft/win95/util/se085018.html

--
> データだけは復元というか取り出したいのですが、

chkファイルが元のHDDに書き出されている状況ですと、破損したと判断されたクラスタの情報は、開放、別の情報で上書きされている可能性が高いです。
ブートしなくなる前後の状態でscandiskを実行させずに、FinalDataなどのデータ復旧ソフトを使用してデータを取り出す(というか、バックアップしとく)のがベストでした。

今からでも、復旧ツールでの復元を試みてみては?

WinFAQ - win:トラブル: 大事なデータを誤って消してしまいました。復元できますか?
http://homepage2.nifty.com/winfaq/c/trouble.html#385

参考URL:http://schoten.s11.xrea.com/pc/question/113.html, http://www.vector.co.jp/soft/win95/util/se085018.html

chkファイルはHDD内でファイルとして正しく認識できなくなってしまった領域を、scandiskの機能でファイルに変換したものです。
元は何らかのファイルだったはずのものですから、それがどういうファイルであるかわかれば、拡張子を変更する事で開ける場合があります。

例えば、jpeg画像のファイルだと目処をつけて、File0000.jpgにしてみるとか。

ただ、全部のファイルの種類を推測するのは現実的に無理です。

ベルギー生活インフォ - Q & A - CHKというファイルの正体。削除しても良いのか。
http://sc...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報