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