gpt4 book ai didi

posix - POSIX shell 中的嵌套参数替换

转载 作者:行者123 更新时间:2023-12-04 18:24:39 30 4
gpt4 key购买 nike

嵌套参数替换在 Zsh 中有效:

$ param=abc

# nested remove prefix ${...#a} and remove suffix ${...%c} =>
$ printf '%s\n' ${${param#a}%c}
# => b

POSIX 中是否有任何等效项?

$ param=abc
$ printf '%s\n' ${${param#a}%c}
# => dash: 2: Bad substitution
# => sh: ${${param#a}%c}: bad substitution
# => bash: ${${param#a}%c}: bad substitution

最佳答案

您可以使用 expr 来提取所需前缀和后缀之间的文本。 (当然,这不是等同于嵌套表达式的通用目的,但确实解决了您给定的问题。)

param=abc
expr "$param" : "a\(.*\)c"

expr的正则表达式匹配操作符:有两个参数:左边的参数是一个字符串,右边的参数是一个正则表达式。输出是 \(...\) 组内匹配的内容。

关于posix - POSIX shell 中的嵌套参数替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29564726/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com