function foo() {
A=$@...
echo $A
}
foo bla "hello ppl"
我希望输出为:
"bla“"hello ppl”
我需要做什么来代替省略号?
发布于 2010-06-23 19:36:54
@msw有正确的想法(在问题的评论中)。但是,打印带引号的参数的另一个想法是:使用printf
的隐式迭代
foo() { printf '"%s" ' "$@"; echo ""; }
foo bla "hello ppl"
# => "bla" "hello ppl"
发布于 2010-06-23 18:59:03
使用参数替换添加“作为前缀和后缀:
function foo() {
A=("${@/#/\"}")
A=("${A[@]/%/\"}")
echo -e "${A[@]}"
}
foo bla "hello ppl" kkk 'ss ss'
输出
"bla" "hello ppl" "kkk" "ss ss"
发布于 2010-06-23 18:03:56
您可以使用"$@“将每个参数视为单独的参数,然后循环遍历每个参数:
function foo() {
for i in "$@"
do
echo -n \"$i\"" "
done
echo
}
foo bla "hello ppl"
https://stackoverflow.com/questions/3104209
复制