0
我爲的是能正常工作的命令:如何獲取文件路徑從變量名找到
fname=$(find $dir -name '*001.txt')
我希望做的是一個變量替換數:
fname=$(find $dir -name '*$num.txt')
但什麼都不收。我試過轉義單引號:\'*$num.txt\'
,用雙引號括起單引號:"'"*$num.txt"'",
,但沒有任何效果。我需要什麼?
我爲的是能正常工作的命令:如何獲取文件路徑從變量名找到
fname=$(find $dir -name '*001.txt')
我希望做的是一個變量替換數:
fname=$(find $dir -name '*$num.txt')
但什麼都不收。我試過轉義單引號:\'*$num.txt\'
,用雙引號括起單引號:"'"*$num.txt"'",
,但沒有任何效果。我需要什麼?
試試這個:
fname=$(find $dir -name "*${num}.txt")
的Shell變量不要用單引號擴大。 Globs不會擴展任何引號。您需要雙引號變量,而不是引用glob('*')。 – 2015-04-03 13:38:15
因爲,賽勒斯正確地認識到,我沒有清楚地想到,glob不想被shell想擴展,所以你需要'find'來查看它的未擴展,所以請將'*'保留在雙引號中,如圖所示。但請注意,如果您想逐一使用它們,則這不是一種安全的方法來獲取多個文件名。爲此你需要一個'while'循環(更多細節見http://mywiki.wooledge.org/BashFAQ/001)。 – 2015-04-03 14:32:06