Я пытаюсь получить basename
из цикла, но это только возвращает меня "*"
.Bash - получить basename из цикла
FILES=("/home/aaaa/bbbb/*") #Get all folders
for f in "${FILES[@]}"
do
basename "$f"
done
Что я делаю неправильно?
Я пытаюсь получить basename
из цикла, но это только возвращает меня "*"
.Bash - получить basename из цикла
FILES=("/home/aaaa/bbbb/*") #Get all folders
for f in "${FILES[@]}"
do
basename "$f"
done
Что я делаю неправильно?
Используя ("/home/aaaa/bbbb/*")
, массив создается только с одной литеральной строкой "/home/aaaa/bbbb/*"
.
Вместо этого, чтобы избавиться от кавычек и просто сказать:
FILES=(/home/aaa/bbb/*)
for f in "${FILES[@]}"
do
basename "$f"
done
Вам даже не нужно создать массив и выполнить свой цикл, как это:
for f in /home/aaaa/bbbb/*
do
# get the basename using pure BASH
base="${f##*/}"
echo "base is: $base"
done
рассматривающие любой один из ответа как решение по вашему запросу, делает прямо "ls -1/home/aaaa/bbbb /" не приводит к ожидаемому результату? – user1587504