假设我的目录包含文件 hesa1.c 和 hesa2.c。以下 bash 脚本
#!/bin/bash
for j in hes*.c
do
echo $j
done
Run Code Online (Sandbox Code Playgroud)
返回 hesa1.c 和 hesa2.c 。
我如何让这个 bash 脚本只返回 a1 和 a2(即通配符扩展成什么)?
这不是一个完全通用的答案,如“仅显示通配符扩展”,但您可以使用 shell 的参数扩展功能来删除 glob 的固定部分:
j=${j#hes}
echo ${j%.c}
Run Code Online (Sandbox Code Playgroud)
这将删除开头的固定“hes” j
,然后删除结尾处的固定“.c” j
。