我编码了下面的代码,如果没有-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