Bash - 从循环中获取basename

use*_*028 0 ssh bash shell debian

我想basename从循环中获取,但这只会让我回归"*".

FILES=("/home/aaaa/bbbb/*") #Get all folders
for f in "${FILES[@]}"
do
  basename "$f"
done
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

anu*_*ava 5

你甚至不需要像这样创建一个数组并执行你的循环:

for f in /home/aaaa/bbbb/*
do
  # get the basename using pure BASH
  base="${f##*/}"
  echo "base is: $base"
done
Run Code Online (Sandbox Code Playgroud)

  • 要返回数组,`names =(/ home/aaaa/bbbb/*); basenames =("$ {names [@] ##*/}")`也可以.不需要显式循环. (3认同)