嗨我開始學習如何製作和使用shell腳本,我想要創建的shell腳本是一個shell腳本,它接受來自用戶的字符串輸入,正在詢問一個文件名,並報告文件是否存在。我不確定要做什麼。 下面是我寫的東西:使用字符串輸入查找文件名的Shell腳本
#!/bin/bash
read string1
echo${#string1} ; grep
我不知道grep的輸入後做什麼。 請幫忙。
嗨我開始學習如何製作和使用shell腳本,我想要創建的shell腳本是一個shell腳本,它接受來自用戶的字符串輸入,正在詢問一個文件名,並報告文件是否存在。我不確定要做什麼。 下面是我寫的東西:使用字符串輸入查找文件名的Shell腳本
#!/bin/bash
read string1
echo${#string1} ; grep
我不知道grep的輸入後做什麼。 請幫忙。
grep查找文件內容中出現的字符串。如果您只想測試是否存在具有給定名稱的文件,則不需要grep。
#!/bin/bash
read string1
if test -e ${string1}; then
echo The file ${string1} exists
fi
會做。
[從評論回答複製由@glenn傑克曼的建議]
'-e'會測試文件(文件被理解爲目錄,常規文件,fifo,鏈接,你的名字)的存在。我認爲你應該把這個添加到你的答案中,以使它更全面和更好。也許增加一些其他的測試,爲什麼不是'help test'的摘錄。此外,由於問題明確標記爲[tag:bash],因此可以使用雙方括號'[[...]]'。還有一件事,**使用更多的引號**。祝你好運':)'。 –
使用文件測試操作,而不是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!
感謝球員的幫助,我感謝你們的幫助! – user2938482
grep查找文件內容中出現的字符串。如果您只想測試是否存在具有給定名稱的文件,則不需要grep。 'if test -e $ {string1};然後echo文件$ {string1}存在; fi'會做。 –
@MarkPlotnick,添加回答 –