shell脚本sh从参数中删除斜杠(/)

时间:2016-01-29 23:32:39

标签: linux shell unix sh

如何防止斜杠崩溃我的程序。我的第一个想法是删除斜线,但如果有更好的方法,请告诉我。我不知道用户是否会传入" dir"或" dir /"。这是sh。

$1="directory/"

for i in "$1"/*
do
   some code
done

2 个答案:

答案 0 :(得分:3)

如果您使用parameter expansion

,则可以将其删除
for i in "${1%/}"/*

,从末尾删除斜杠,扩展为$1

答案 1 :(得分:0)

我认为你有像@Benjamin这样的问题:不要分配给1美元。 我们检查输入并分配给dir

# 
if [ $# -eq 0 ]; then
   echo "Usage: $0 directory [other parameters]"
   exit 1
fi

if [ -d "$1"]; then
   dir="${1%/}"
else
   echo "$1 is not a valid directory"
   exit 1
fi

for file in "$dir"/*
do
   some code with "${file}"
done