• ベストアンサー

kshのファイルが存在しない時

ksh (korn shell)にて if [[ -e file.txt ]]; then とすれば、file.txtが存在する時の処理ができることは分かったのですが、反対に 「ファイルが存在しない時」はどういうif文の書き方をすればいいのでしょうか? man kshで探してみたのですが、探し方がよくわからず、挫折しました。 C言語でいうところの "!"や否定の仕方がありましたら、教えていただきたいと思います。 否定で書けない場合は、別の方法を教えていただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

具体的のどのkshかがはっきりしませんが、基本は同じですので manpage kshで最初に見つかったサイトから引用 http://uw714doc.sco.com/ja/man/html.1/ksh.1.html > 条件式 > ! expression > expression が偽の場合に真。 なお、!は特殊文字(コマンド履歴の展開に使用される)なので、 \! 等とエスケープするとか '!' 等と文字列にするとかの必要があるでしょう あと、[[ コマンドの演算子と被演算子は、シェルコマンドの引数として指定する必要があります。 !-e 等と空白無しに続けて書くことはできません

flex1101
質問者

お礼

回答ありがとうございます。 同じページを検索で見つけていたのですが、どの部分を読めばいいかわかっていませんでした。 「偽」で検索したらたどれますね。 > !-e > 等と空白無しに続けて書くことはできません 空白をきちんととらないといけないのですね。この点, 注意の喚起ありがとうございます。

その他の回答 (1)

  • wormhole
  • ベストアンサー率28% (1619/5654)
回答No.1

! でいいですけど。

flex1101
質問者

お礼

回答ありがとうございます. ! (not operator) というので使えたのですね。

関連するQ&A

  • UNIX ファイル存在チェックの方法

    お世話になります。 UNIXにてファイル存在チェックを行うShellスクリプトを作成しています。 ■プログラム if (-f "text_file_*.txt") then echo "存在している" else echo "存在していない" endif ■問題点 IF文中の比較対照ファイルとして、ワイルドカード(*)を 指定しているのですが、文字列として認識されてしまいます。 この方法でワイルドカードとして処理を実行する方法はあるでしょうか? もしくは代替案などありましたら、ご教示いただきたいです。 よろしくお願いします。

  • [VB2008]ファイル存在確認について

    質問です。VB2008を使ってる者ですが、以下のソースが分りません。 例で言います。 最初に以下のファイル存在を確認します。 C:\TEST\test1.txt C:\TEST\test2.txt C:\TEST\test3.txt 全て存在する ここまでは良いのですが、この後 例えば C:\TEST\test1.txt C:\TEST\test2.txt C:\TEST\test3.txt C:\TEST\test4.txt ←これ(これ) ファイルの存在確認で同じフォルダ("TEST")に 存在確認の必要としない不要ファイル("これ")を検出して 削除したいのですが、方法が分りません。 "これ"の不要ファイルの名前は、必ずしも"test4"では無い 存在チェック以外の不要ファイルを削除したいのです。 Dim checkFile As String = "C:\Work\Test.txt" If System.IO.File.Exists(checkFile) Then Console.WriteLine("ファイルが存在します") Else Console.WriteLine("ファイルが存在しせん") End If 上記の後、必要の無いファイルを検出して削除するには どうすれば良いでしょうか? 凄く困ってるので、教えて下さい

  • ある名前のファイルが存在するかどうか判断できますか?

    データファイル(txt)にデータをタブ区切りで持っていて、 PHPでそれを読み込み整形して表示する、ということをやっています。 (リンク集や一言BBSのようなものです) このデータファイルを複数用意して、 その都度指定したものを表示させたいと考えています。 既にファイルが存在している時は問題無いのですが、 存在しなかった場合にfopen(r)では新規作成できないので エラーが出てしまいます。 そこで、ある名前のtxtファイルが存在すれば表示、 存在しなければ違うもの(メッセージなど)を表示できるよう if文などで判断するには、どうしたら良いでしょうか。。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • リモートのファイル存在確認

    標題の通り、 リモートファイルのファイルの存在チェックをしようと思っているのですが、 シェルに詳しくないのでご教授願いないでしょうか。 通常の同サーバ内では下記のように出来るかと思いますが、 それをssh で別サーバ内のファイル存在チェックをしたいです。 if [ -e /usr/test/test.txt ]; then echo "存在" fi 宜しくお願い致します。

  • シェルの存在確認コマンドでファイルを認識しない

    現在、solarisの吐き出すログの自動バックアップshellを運用しています。そのshellの内容は ifでディレクトリ内存在確認後、*でtarに固める、というもので、 if [ -s $abc/* ]; then cd $abc tar -cvf abc_`date "+%Y%m%d"`.tar * という内容なのですが、 if [ -s ・・・ の存在確認の時点でファイルは実際に存在するのに 存在を認識しない場合があるのです。。 ディレクトリ内のファイルの実行権を変えても認識せず、 たとえば認識しないディレクトリの中に「a」というファイルを 作って再度シェルを流してみると、今度は認識します。しかし削除するとしなくなります。また、認識しないファイルのmvで変名してやってみるとうまくいきます。 何が問題なのでしょうか?ファイルの存在確認において、認識しない場合というのがあるのでしょうか? お助けください!よろしくお願いします。

  • bash ファイルなし判定

    現在bash scriptにおいてファイル存在判定を下記のように しています。 if [ -s "tmp.txt" ]; then (dummy=1) else echo " no [tmp.txt] file" exit fi -sでファイルがある場合のelseとしていています。 if文で直接ファイルが"ない"という判定はどのように 記載するのでしょうか?

  • シェルスクリプト構文で「もしファイルが存在しなかったら」を表すには?

    シェルスクリプトのif文で「存在しなかったらthen節へ」の表現方法を伺っても宜しいでしょうか? 現状「存在するならthen節へ」を使い下のようにしています。 if [ -e XXXXX ]; then # XXXXXが存在しなかったら echo # 存在時は処理なし。が、構文不明の為、無意味なechoを入れてる else # 存在しない時の処理がここにある fi 上を自然な文法に修正したいです。以上どうか宜しくお願い致します。

  • awkでのファイル読み込み

    シェルを作成しています。 昔kshを作ってたので、ksh+awkでCSVファイル処理をしたいのですが、記憶が古く、覚えていないし、調べてもわかりませんでした。 参考になるサンプルソースや、参考になるHP等助言頂けたうれしいです。 ファイル読み込みがうまくいってないのか、getlineを使うべきなのか..。 #!/bin/ksh -x #Parameter Check if [ $# -ne 1 ];then echo "Error File Name Must Specified" exit 1 fi # Check File Exist ls $1 >/dev/null 2>&1 if [ $? -ne 0 ];then echo "Error File Not Found" exit 1 fi # Read File awk -F"," '{  フィールドセパレター変更→CSVファイルを一行ずつ読み込み→各処理をしたいです。 }' $1 宜しくお願いいたします。

  • スクリプトファイル編集について

    ファイル編集について勉強なのですがどうしてもできません。 複数ファイル内よりIF構文を見つけてFILE_A.txtのIF書式へ変換する。 ※編集前にFILE_B.txtの変更箇所をコメント化して編集後に変換、 FILE_A.txtの書式であれば編集しない処理を作りたいと思うのですが・・・ FILE_A.txt if [ $? != 0 ] ; then   echo "てすと" fi 編集前 FILE_B.txt -- if [ -f $file ] then   echo "てすと" fi 編集後 FILE_B.txt -- #if [ -f $file ] #then if [ -f $file ] ; then   echo "てすと" fi 以上よろしくおねがいします。

  • JSPのファイル検索

    JSPでtxtファイルを読み込んで使っているのですが、txtファイルが無かった時に、違う処理をさせたいのです。 if("~.txt" == null){    txtファイルがない時の処理 }else{    txtファイルがある時の処理 } という感じを考えていたのですが、このようにすると初めのif文の時点で"~.txt"が無いため、ファイルが見つからないエラーが起きてしまいます。 何かいい方法は無いでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java