xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

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 contain whitespace to array in shell script, but failed.

image

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

image

demos

(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!

refs

https://stackoverflow.com/questions/77186862/how-to-add-a-string-which-contain-whitespace-to-array-in-shell-script

https://stackoverflow.com/questions/77185980/how-to-split-the-array-elements-in-bash-script



©xgqfrms 2012-2021

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @ 2023-09-27 19:13  xgqfrms  阅读(5)  评论(4编辑  收藏  举报