我在當前目錄下有3個檔案
t1
t2
t3
命令
for x in t* ; do echo $x; done
回傳
t1
t2
t3
for回圈如何知道x是一個檔案?
uj5u.com熱心網友回復:
這是由于Bash的Shell-Expansions,以及更具體的Filename-Expansions和Pattern-Matching。你使用的是*通配符,它匹配 "匹配任何字串,包括空字串"。因此,當前目錄中任何匹配t*的檔案都將在for回圈中被迭代。在這種情況下,它只是t1、t2和t3。
這就是說,Bash本身并沒有 "檔案 "的概念,而只是一些簡單的字串,它們指向檔案系統中的特定路徑,然后可以被其他命令使用。你可以用test命令的-f標志來測驗某個東西是否是一個檔案。
uj5u.com熱心網友回復:
for-loop不知道任何關于檔案的資訊。 這是由于評價globs的緣故。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/312365.html
標籤:
