首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在shell脚本中将多个字符串值赋给一个变量?

如何在shell脚本中将多个字符串值赋给一个变量?
EN

Stack Overflow用户
提问于 2019-01-11 08:36:13
回答 2查看 836关注 0票数 0

我尝试循环一个文本文件,更改数字,并将孔字符串存储到shell变量中,以便稍后打印它

我尝试过使用">>“回显字符串和整数(循环中的数字)。

代码语言:javascript
复制
#!/bin/bash
a=0
while [ "$a" -lt 4 ]
do
    echo '<div name="block-'${a}'">' >> $sub_main
    ((a++))
done
echo "done"
echo $sub_main

脚本的输出应为:

代码语言:javascript
复制
<div name="block-0">
<div name="block-1">
<div name="block-2">
<div name="block-3">
EN

回答 2

Stack Overflow用户

发布于 2019-01-11 09:30:48

>>将输出追加到一个文件中。如果你想追加一个变量,你可以在右值的开头使用一个赋值来追加这个变量。

代码语言:javascript
复制
a=0;
sub_main="";
while [ "${a}" -lt 4 ]; do
  sub_main="${sub_main}\n<div name=\"block-${a}\">";
  ((a++));
done;
echo "done";
echo "${sub_main}";

或者,如果附加到文件的目的是,您可以简单地使用cat而不是echo来输出文件的内容。

即替换

代码语言:javascript
复制
echo $sub_main

通过以下方式:

代码语言:javascript
复制
cat "${sub_main}";
票数 0
EN

Stack Overflow用户

发布于 2019-01-11 11:47:40

使用命令替换将输出捕获到变量中:

代码语言:javascript
复制
#!/bin/bash
sub_main=$(
    for (( a = 0; a < 4; a++ )); do
        printf '<div name="block-%d">\n' "$a"
    done
)
# ... do other stuff ...
echo "$sub_main"

或者,您可能希望使用函数将执行推迟到以后:

代码语言:javascript
复制
#!/bin/bash
sub_main() {
    for (( a = 0; a < 4; a++ )); do
        printf '<div name="block-%d">\n' "$a"
    done
}
# ... do other stuff ...
sub_main
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54138858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档