shell 脚本 sh 从参数中删除斜杠 (/)
shell script sh removing slash (/) from argument
如何防止斜线使我的程序崩溃。我的第一个想法是删除斜线,但如果有更好的方法,请告诉我。不知道用户会传入"dir"还是"dir/"。这是在sh.
="directory/"
for i in ""/*
do
some code
done
如果出现 parameter expansion:
,您可以删除它
for i in "${1%/}"/*
扩展为
,删除了末尾的斜杠。
我认为您遇到了@Benjamin 所说的问题:不要分配给 $1。
让我们检查输入并分配给 dir
.
#
if [ $# -eq 0 ]; then
echo "Usage: [=10=] directory [other parameters]"
exit 1
fi
if [ -d ""]; then
dir="${1%/}"
else
echo " is not a valid directory"
exit 1
fi
for file in "$dir"/*
do
some code with "${file}"
done
如何防止斜线使我的程序崩溃。我的第一个想法是删除斜线,但如果有更好的方法,请告诉我。不知道用户会传入"dir"还是"dir/"。这是在sh.
="directory/"
for i in ""/*
do
some code
done
如果出现 parameter expansion:
,您可以删除它for i in "${1%/}"/*
扩展为 ,删除了末尾的斜杠。
我认为您遇到了@Benjamin 所说的问题:不要分配给 $1。
让我们检查输入并分配给 dir
.
#
if [ $# -eq 0 ]; then
echo "Usage: [=10=] directory [other parameters]"
exit 1
fi
if [ -d ""]; then
dir="${1%/}"
else
echo " is not a valid directory"
exit 1
fi
for file in "$dir"/*
do
some code with "${file}"
done