How to add a string that contains whitespace to array in shell script All In One
How to add a string that contains whitespace to array in shell script All In One
I have tried some ways to add a
string
which containwhitespace
to array inshell script
, but failed.
string variables concatenate
#!/usr/bin/env bash
str1="hello"
str2="world"
# ✅
strs="$str1 $str2"
# or ✅
# strs+="$str1 "
# strs+="$str2"
# or ✅
# strs="$str1 ""$str2"
echo $strs
# hello world
error
But that not work when I add a string which contain a whitespace
to array.
It splits the string into two items.
#!/usr/bin/env bash
str1="hello"
str2="world"
# ❌
# strs="$str1\ $str2"
# strs="$str1'\ '$str2"
strs="$str1 $str2"
arr=()
arr+=("$strs")
for item in ${arr[@]}; do
echo "item = $item"
done
# item = hello
# item = world
tried
After I remove the whitespace, use other symbol
it works, but not the expected result.
#!/usr/bin/env bash
str1="hello"
str2="world"
# ❓
# strs="$str1"-"$str2"
strs="$str1"_"$str2"
arr=()
arr+=("$strs")
for item in ${arr[@]}; do
echo "item = $item"
done
# item = hello_world
So, what's wrong with that, and how to fix it.
solution ✅
I want to get only one item with whitespace.
#!/usr/bin/env bash
str1="hello"
str2="world"
# ❓
strs="string with whitespace"
arr=()
arr+=("$strs")
# ✅ 双引号
for item in "${arr[@]};" do
echo "item = $item"
done
# item = hello world
demos
(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!
refs
https://stackoverflow.com/questions/77185980/how-to-split-the-array-elements-in-bash-script
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/17734114.html
未经授权禁止转载,违者必究!