テストのために bash で「find」コマンドを使用する方法があるかどうか知りたいです。つまり、「find」でファイルが見つかったかどうかをテストする条件ステートメントを作成するにはどうすればよいでしょうか。
私が言いたいことをさらに説明するために、次のコードを含めました。その目的は次のとおりです。
- ユーザーが入力したディレクトリを見つける
- そのディレクトリ内のファイルを検索し、ユーザーが入力したファイル名
- そのファイルで、ユーザーによって入力された単語を見つける
#!/bin/bash
#Task9.sh
cd /
echo "please enter a directory"
read direc
path= find home -depth -name "$direc"
if [ -z $path ]; then
echo "not a valid directory"
exit 1
else
cd $path
counter=3
while [ $counter -gt 0 ]; do
echo "enter a filename"
read FileName
FilePath= find $direc -depth -name "$FileName"
if [ -z $FilePath ]; then
break
else
let counter--
fi
done
if [ -z $FilePath ]; then
cd $FilePath
echo "input a word"
read SearchWord
echo "Found!"
grep $SearchWord $FileName
else
echo "No such file"
exit 2
fi
fi
exit 0
私は Bash に非常に慣れていないので、見落とした簡単な間違いをお詫びします。私はまだ言語の解析に慣れていません。私を助けてくれた人に感謝します。