假设您有一个 shell 变量foo,其值为
echo ${foo}
# Output: elementA elementB elementC
Run Code Online (Sandbox Code Playgroud)
现在我想向元素添加相同的前缀__PREFIX__和后缀__SUFFIX__,以便
echo ${new_foo}
# Output: __PREFIX__ElementA__SUFFIX__ __PREFIX__ElementB__SUFFIX__ __PREFIX__ElementC__SUFFIX__
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最简单方法是什么?
因为我不确定应该如何调用这样的操作,所以标题可能没有正确描述问题。
感谢您的评论和回答。标题已更新。
如果你有一个合适的数组,
foo=(a b c)
Run Code Online (Sandbox Code Playgroud)
您可以使用运算符添加前缀/#,并使用运算符添加后缀/%。不过,它确实必须分两步完成。
$ foo=(a b c)
$ foo=("${foo[@]/#/__PREFIX__}")
$ foo=("${foo[@]/%/__SUFFIX__}")
$ declare -p foo
declare -a foo=([0]="__PREFIX__a__SUFFIX__" [1]="__PREFIX__b__SUFFIX__" [2]="__PREFIX__c__SUFFIX__")
Run Code Online (Sandbox Code Playgroud)
如果您只有一个空格分隔的字符串,则可以使用//:
$ foo="a b c"
$ foo="__PREFIX__${foo// /__SUFFIX__ __PREFIX__}__SUFFIX__"
$ echo "$foo"
__PREFIX__a__SUFFIX__ __PREFIX__b__SUFFIX__ __PREFIX__c__SUFFIX__
Run Code Online (Sandbox Code Playgroud)