2010-10-22 525 views
0

如何在使用shell腳本訪問unix中的文件時克服區分大小寫。shell腳本中的區分大小寫

我有一個文件,即指定路徑中的file.txt和腳本,同時訪問名稱相同的文件FILE.txt它引發錯誤,因爲無法打開文件。

請指導我如何在unix腳本中更改大小寫的情況下訪問文件。

如何關閉c shell中的區分大小寫。

+0

我們展示腳本,什麼是失敗的。 Unix中的文件名是區分大小寫的,並且有幾個選項,但是知道你在做什麼將有助於產生一個可行的答案。 – msw 2010-10-22 09:56:33

+0

說真的,[不要在C shell中編寫腳本](http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/)。 – 2010-10-23 23:41:37

回答

3

文件名在UNIX系統上區分大小寫。正如您在同一個目錄中可能同時有file.txtFile.txt一樣,如果腳本沒有相同的大小寫,則讓腳本認爲文件名是好的是不安全的。然而,find可以告訴你:

let my_file="$(find . -iname 'FILE.txt' -maxdepth 1 | head -n 1)" 

head)確保您獲得只有一個結果。

再次,不要這樣做,它是邪惡的。改變你的習慣並習慣於區分大小寫。

2

要關閉大小寫,在bash,你可以使用nocaseglob

shopt -s nocaseglob 
echo FILE.txt 
+0

如何關閉c shell中的大小寫區分? – Shashang 2010-10-22 10:14:48