我对 bash 很陌生。我上周才开始学习。我正在尝试搜索文件名。
如果找到文件,如何显示消息?
这就是我所拥有的,但它一直说“不”
echo ' [Enter] a file name '
read findFile
if [[ -n $(find /$HOME -type f -name "findFile") ]]
then
echo 'yes'
else
echo 'no'
fi
几个问题:
- Use
var=
or read var
定义变量时,但是$var
使用时。
-
找到文件后没有理由继续搜索,因此请执行如下操作,其中find
will -quit
找到单个文件并将其作为结果返回后-print
#!/bin/bash
echo ' [Enter] a file name '
read findFile
if [[ -f $(find "$HOME" -type f -name "$findFile" -print -quit) ]]; then
echo 'yes'
else
echo 'no'
fi
请注意该选项-quit
将适用于 GNU 和 FreeBSD 操作系统(这意味着这在大多数情况下都适用),但是例如,您需要将其更改为-exit
在 NetBSD 上。
你可以看到这个答案 https://unix.stackexchange.com/a/62883/243375有关此选项的详细信息,请参阅 Unix/Linux StackExchange。
另请注意,每阿达丰的评论 https://stackoverflow.com/questions/22805204/how-to-display-true-if-find-is-not-empty/22805527#comment34778178_22805527,尽管/
前面不需要$HOME
,没有错,文件还是会找到的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)