我編碼了下面的代碼,如果沒有-l或-L選項傳遞給腳本,我需要假設(檢測)文件名是否作爲參數傳遞。如果文件名是一個小寫字符,下面的第三個條件只匹配。我怎樣才能靈活地匹配大小寫字母或可變長度的字符串?如何在case語句中檢測文件名 - 在unix shell中?
while [ $# -gt 0 ]
do
case $1 in
-l) echo ls;;
-L) echo ls -l;;
[a-z]) echo filename;;
*) echo usage
exit 1;;
esac
shift
done
此外,如何包含一個條件,在這種情況下,將反應爲空$ 1? 例如,如果腳本被調用時沒有任何選項或文件名。
「檢查一個字符串是否是一個有效的文件名」 - 實際上它檢查文件是否存在(如'-e') – 2009-11-30 01:31:37
-e和-f之間有什麼區別? – goe 2009-11-30 02:01:34
請參閱'man bash':-e檢查文件是否存在,-f檢查它是否也是文件(不是目錄) – 2009-11-30 02:13:09