2013-11-02 109 views
0

嗨我開始學習如何製作和使用shell腳本,我想要創建的shell腳本是一個shell腳本,它接受來自用戶的字符串輸入,正在詢問一個文件名,並報告文件是否存在。我不確定要做什麼。 下面是我寫的東西:使用字符串輸入查找文件名的Shell腳本

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

我不知道grep的輸入後做什麼。 請幫忙。

+1

grep查找文件內容中出現的字符串。如果您只想測試是否存在具有給定名稱的文件,則不需要grep。 'if test -e $ {string1};然後echo文件$ {string1}存在; fi'會做。 –

+0

@MarkPlotnick,添加回答 –

回答

1

grep查找文件內容中出現的字符串。如果您只想測試是否存在具有給定名稱的文件,則不需要grep。

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

會做。

[從評論回答複製由@glenn傑克曼的建議]

+0

'-e'會測試文件(文件被理解爲目錄,常規文件,fifo,鏈接,你的名字)的存在。我認爲你應該把這個添加到你的答案中,以使它更全面和更好。也許增加一些其他的測試,爲什麼不是'help test'的摘錄。此外,由於問題明確標記爲[tag:bash],因此可以使用雙方括號'[[...]]'。還有一件事,**使用更多的引號**。祝你好運':)'。 –

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! 
+0

感謝球員的幫助,我感謝你們的幫助! – user2938482

相關問題