我对bash很新.我上周才开始学习.我正在尝试搜索文件名.如果找到该文件,如何显示消息?
这就是我所拥有但它一直说'不'
echo ' [Enter] a file name '
read findFile
if [[ -n $(find /$HOME -type f -name "findFile") ]]
then
echo 'yes'
else
echo 'no'
fi
Run Code Online (Sandbox Code Playgroud)
一些问题:
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
Run Code Online (Sandbox Code Playgroud)
请注意,该选项-quit
适用于GNU和FreeBSD操作系统(这意味着它在大多数情况下都有效),但是例如,您需要将其更改为-exit
NetBSD.您可以从Unix/Linux StackExchange中看到此答案,以获取有关此选项的详细信息.
另请注意,根据Adaephon的评论,虽然/
前面不需要$HOME
,但没有错,文件仍然会被找到.