用于使用字符串输入查找文件名的Shell脚本

时间:2013-11-02 18:30:59

标签: linux string bash shell grep

您好我开始学习如何制作和使用shell脚本,我想要制作的shell脚本是一个shell脚本,它接收来自要求文件名的用户的字符串输入并报告是否文件是否存在。我不确定该怎么做。 这就是我写的:

#!/bin/bash
read string1
 echo${#string1} ; grep

输入grep后我不知道该怎么做。 请帮忙。

2 个答案:

答案 0 :(得分:1)

grep查找文件内容中出现的字符串。如果您只想测试是否存在具有给定名称的文件,则不需要grep。

#!/bin/bash
read string1    
if test -e ${string1}; then
    echo The file ${string1} exists
fi

会做的。

[根据@glenn jackman的建议从评论复制回答]

答案 1 :(得分:1)

使用文件测试运算符而不是grepping名称:

#!/bin/bash
printf "Enter a filename: "
read string1

if [[ -f "$string1" ]]; then
    echo "The file '$string1' exists."
else
    echo "The file '$string1' does not exist!"
fi

不要忘记引用变量,以便正确解析带空格和奇数字符的名称。

$ bash test.sh 
Enter a filename: hash.pl
The file 'hash.pl' exists.

$ bash test.sh 
Enter a filename: odd file.txt
The file 'odd file.txt' exists.

$ bash test.sh 
Enter a filename: somefile
The file 'somefile' does not exist!