我想知道是否有任何方法可以在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很新,所以我为我忽略的任何容易出错而道歉。我还不习惯解析这门语言。感谢任何帮助我的人,非常感谢
答案 0 :(得分:1)
您正在使用find
命令加上shell的-z $foo
运算符来确定用户是否指定了现有文件的路径。可能有一种方法只是直接询问bash文件是否存在,使用基于文件的运算符,而不是运行不必要的命令,然后在结果上使用基于字符串的运算符(提示:有)。此页面上的某些链接可能对您有所帮助: