rui*_*rui 18 string bash shell concatenation
function foo() {
A=$@...
echo $A
}
foo bla "hello ppl"
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
"bla""hello ppl"
我需要做什么而不是省略号?
gle*_*man 24
@msw有正确的想法(在问题的评论中).但是,使用引号打印参数的另一个想法是:使用隐式迭代printf:
foo() { printf '"%s" ' "$@"; echo ""; }
foo bla "hello ppl"
# => "bla" "hello ppl"
Run Code Online (Sandbox Code Playgroud)
使用参数替换添加"作为前缀和后缀:
function foo() {
A=("${@/#/\"}")
A=("${A[@]/%/\"}")
echo -e "${A[@]}"
}
foo bla "hello ppl" kkk 'ss ss'
Run Code Online (Sandbox Code Playgroud)
产量
"bla" "hello ppl" "kkk" "ss ss"
Run Code Online (Sandbox Code Playgroud)
您可以使用“$@”将每个参数视为单独的参数,然后循环每个参数:
function foo() {
for i in "$@"
do
echo -n \"$i\"" "
done
echo
}
foo bla "hello ppl"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20566 次 |
| 最近记录: |