- PR -

ステップバイシェルスクリプトについて、

1
投稿者投稿内容
akuro
常連さん
会議室デビュー日: 2002/11/28
投稿数: 22
投稿日時: 2002-11-28 00:35

いつも@ITのコンテンツを拝見させていただいていますakuroと申すものです。

@ITのコンテンツの「ステップバイシェルスクリプト」の第4回を
見ていて分からないことがあり投稿させていただきました。

この中で(行でいうと真中あたりです)、

#!/bin/bash
grep $1 `find &2`

というスクリプトにて、
「エラー表示がどうも気になる」の

>これを実行して気になったことが2つあります。1つは/etcの下にディレクトリがあっ
>た場合、“Is a directory”と出力されてしまうこと。これはgrepコマンドがディレ
>クトリを指定された場合に、エラーメッセージとして表示しています。

という所なのですが、
これはどういう意味なのでしょうか?
色々試しているのですが、“Is a directory”というエラーは表示されませんでした。

具体的にどのようなパターンの時に上記のエラーが起きるのでしょうか?

初歩的な質問で申し訳ないのですが、よろしくお願いします。


自分のPC環境
PC--RedHat7.3
シェル--bash






しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-11-28 02:12
grep の仕様によります。
現に手元の grep (GNU grep 2.5) では、対象ファイルとしてディレクトリを指定してもエラーメッセージは出ません。

あ…バグ発見。
--------------------------------------------
:
# コマンド実行
grep -s $1 `find $2 -type f 2> /dev/null`
:
--------------------------------------------
は、「grep -s $1 `find $DIR -type f 2> /dev/null]ですね。

--
# 余談ですが、grep $1 -r $2 なんてのもできますし、
# find $2 -type f -exec grep $1 \{\} \; なんて方法も。
# 連載の趣旨はシェルスクリプトなので採用はできませんけど。

[ メッセージ編集済み 編集者: しょむ 編集日時 2002-11-28 02:13 ]
akuro
常連さん
会議室デビュー日: 2002/11/28
投稿数: 22
投稿日時: 2002-11-28 15:29
返信ありがとうございました。

>grep の仕様によります。
>現に手元の grep (GNU grep 2.5) では、対象ファイルとしてディレクトリを指定しても>エラーメッセージは出ません。

自分のはversion2.5.1なのでそれで表示されなかったようです。


># 余談ですが、grep $1 -r $2 なんてのもできますし、
># find $2 -type f -exec grep $1 \{\} \; なんて方法も。

ありがとうございます、色々試してみたいとおもいます。
1

スキルアップ/キャリアアップ(JOB@IT)