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