如何验证如果arg是壳牌有效的文件名?
-
11-09-2019 - |
题
我需要验证如果参数是有效的文件名,这是做正确的方式?好像我做了一些错误的直列,但我不知道在哪里。
for i in ${@}; do
if [ -f ${i}]; then
echo ${i}
else continue
fi
done
解决方案
首先,需要右方括号前的空间。你应该引用您的变量的情况下,有一个文件名的空间。
for i in "${@}"; do
if [ -f "${i}" ]; then
echo "${i}"
else continue
fi
done
在“else continue
”是不必要的,除非这对你计划落实到位“continue
”别的东西的占位符。
其他提示
下面是一种简洁的解决方案,其工作方式,即使文件名包含空格:
for i
do
test -f "$i" && echo "$i"
done
请注意的是,为语句假定命令行参数,也没有必要对键入更多。测试命令是,如果短的路..然后..网络
-f将检查$ {I}是一个普通文件。
不隶属于 StackOverflow