我对bash非常陌生。我上周刚开始学习。我正在尝试搜索文件名。
找到文件后如何显示消息?
这就是我所拥有的,但一直说“不”
echo ' [Enter] a file name '
read findFile
if [[ -n $(find /$HOME -type f -name "findFile") ]]
then
echo 'yes'
else
echo 'no'
fi
最佳答案
一些问题:
var=
或read var
,但在使用它时使用$var
。 find
在找到单个文件后将-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操作系统上运行(这意味着在大多数情况下将可用),但是例如,您需要在NetBSD上将其更改为-exit
。您可以从Unix/Linux StackExchange中看到this answer,以获取有关此选项的详细信息。
还要注意,对于Adaephon's comment,尽管
/
前面不需要$HOME
,但这不是错误的,并且仍会找到文件。关于linux - 如果find不为空,如何显示true,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22805204/