【发布时间】:2021-04-13 09:06:32
【问题描述】:
我正在尝试从代表路径的变量中删除前缀。
目前这是我的代码:
for f in /Users/username/Documents/Dev/beneficiary-service/src/main/helm/*
do
echo $f
if [[ $f == 'values'* ]]
then
yq d -i $f 'resources.'
fi
done
我打印了 $f 来查看它的输出。我希望它只是文件名,没有路径(values-stg.yaml)。 然而,这是输出:
+ echo /Users/username/Documents/Dev/beneficiary-service/src/main/helm/values-stg.yaml
/Users/username/Documents/Dev/beneficiary-service/src/main/helm/values-stg.yaml
+ [[ /Users/username/Documents/Dev/beneficiary-service/src/main/helm/values-stg.yaml == \v\a\l\u\e\s* ]]
而且,“if”语句永远不会为真,因为它认为 values* 字面意思是原样,而不是“任何以值开头的东西”
【问题讨论】:
-
使用参数扩展删除路径:
[[ ${f##*/} == values* ]]. -
@Dominique 请看看我的新帖子:stackoverflow.com/questions/67089998/…