我正在寻找最简单的解决方案,将其$*
作为输入,并扩展到以给定字符串作为前缀和后缀的每个元素:
$*=foo bar baz
<solution(x,y)>=xfooy xbary xbazy
我可以做前置或追加操作,但不能两者都做:
echo ${*/#/x}
# prints xfoo xbar xbaz
echo ${*/%/y}
# prints fooy bary bazy
我无法将两种解决方案结合在一起。该文档声称在parameter = *情况下扩展所返回的值是一个列表,但是我不能这样使用它。我想将值的结果数组作为单独的分隔符传递给另一个命令,因此仅构建单个字符串是行不通的。
#!/bin/bash
echo $*
FIELDS=("${@/#/x}")
FIELDS=("${FIELDS[@]/%/y}")
echo "${FIELDS[*]}"
运行时:
$ t.sh foo bar baz
foo bar baz
xfooy xbary xbazy
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句