我想从循环中获取basename
,但这只会返回"*"
。
FILES=("/home/aaaa/bbbb/*") #Get all folders
for f in "${FILES[@]}"
do
basename "$f"
done
我做错了什么?
答案 0 :(得分:5)
你甚至不需要像这样创建一个数组并执行你的循环:
for f in /home/aaaa/bbbb/*
do
# get the basename using pure BASH
base="${f##*/}"
echo "base is: $base"
done
答案 1 :(得分:3)
通过使用("/home/aaaa/bbbb/*")
,只使用一个文字字符串"/home/aaaa/bbbb/*"
创建一个数组。
相反,摆脱引号并简单地说:
FILES=(/home/aaa/bbb/*)
for f in "${FILES[@]}"
do
basename "$f"
done