Bash-使用';查找';测试命令

Bash-使用';查找';测试命令,bash,Bash,我想知道是否有任何方法可以在bash中使用“find”命令进行测试。换句话说,我如何制作一个条件语句来测试文件是否使用“find”找到 为了更详细地阐述我的意思,我包含了以下代码。其目的应: 查找用户输入的目录 在该目录中查找文件,文件名由用户输入 在该文件中查找一个单词,该单词也由用户输入 #/bin/bash #任务9.sh 光盘/ echo“请输入目录” 读指令 路径=查找主位置-深度-名称“$direc” 如果[-z$path];然后 echo“不是有效目录” 出口1 其他的 cd$路径

我想知道是否有任何方法可以在bash中使用“find”命令进行测试。换句话说,我如何制作一个条件语句来测试文件是否使用“find”找到

为了更详细地阐述我的意思,我包含了以下代码。其目的应:

  • 查找用户输入的目录
  • 在该目录中查找文件,文件名由用户输入
  • 在该文件中查找一个单词,该单词也由用户输入
  • #/bin/bash
    #任务9.sh
    光盘/
    echo“请输入目录”
    读指令
    路径=查找主位置-深度-名称“$direc”
    如果[-z$path];然后
    echo“不是有效目录”
    出口1
    其他的
    cd$路径
    计数器=3
    而[$counter-gt 0];做
    echo“输入文件名”
    读取文件名
    FilePath=find$direc-depth-name“$FileName”
    如果[-z$FilePath];然后
    打破
    其他的
    让我们算帐--
    fi
    完成
    如果[-z$FilePath];然后
    cd$文件路径
    回显“输入一个单词”
    阅读搜索词
    回声“找到了!”
    grep$SearchWord$FileName
    其他的
    echo“没有这样的文件”
    出口2
    fi
    fi
    出口0
    

    我是Bash的新手,所以我为我忽略的任何简单错误道歉。我还不习惯解析这种语言。感谢所有帮助我的人,非常感谢您使用
    find
    命令加上shell的
    -z$foo
    操作符来确定用户是否指定了现有文件的路径。有一种方法可以直接询问bash文件是否存在,使用基于文件的操作符,而不是运行不必要的命令,然后对结果使用基于字符串的操作符(提示:存在)。此页面上的某些链接可能会帮助您:


    祝你好运

    是否需要使用
    find
    命令?是否需要使用-z运算符?或者您可以使用其他命令和运算符吗?我可以使用其他运算符,我通常不知道如何测试目录中是否不存在文件。您的赋值错误,等号后面不能有空格,等号后面的内容将是一个文本字符串,显然您需要命令替换
    path=
    将变量设置为空字符串,
    path=foo bar
    运行命令
    bar
    ,并将
    path
    临时设置为
    foo
    ;通常,您会引用一个文本值,
    path='foo-bar'
    path=“foo-bar”
    ,但这里需要命令替换:
    path=$(foo-bar)
    或旧式
    path=`foo-bar`
    运行命令
    foo-bar
    并在
    path
    中捕获其输出。除非您特别希望shell对值执行单词拆分和通配符扩展,否则通常应双引号引用变量插值,我想至少在接下来的几年里你都不想这么做。因此,
    “$variable”
    而不是一个未加引号的裸
    $variable