【问题标题】:How do you append to an already existing string?你如何附加到已经存在的字符串?
【发布时间】:2010-02-12 06:51:02
【问题描述】:

我想追加到一个字符串,这样每次我循环它时,它都会在字符串中添加“test”。

就像PHP 你会这样做:

$teststr = "test1\n"
$teststr .= "test2\n"
echo = "$teststr"

返回:

test1
test2

但我需要在 shell 脚本中执行此操作

【问题讨论】:

    标签: string bash shell string-concatenation


    【解决方案1】:

    在经典 sh 中,您必须执行以下操作:

    s=test1
    s="${s}test2"
    

    (该主题有很多变体,例如s="$s""test2"

    在 bash 中,您可以使用 +=:

    s=test1
    s+=test2
    

    【讨论】:

      【解决方案2】:
      $ string="test"
      $ string="${string}test2"
      $ echo $string
      testtest2
      

      【讨论】:

        【解决方案3】:
        #!/bin/bash
        message="some text"
        message="$message add some more"
        
        echo $message
        

        一些文字添加一些更多

        【讨论】:

          【解决方案4】:
          teststr=$'test1\n'
          teststr+=$'test2\n'
          echo "$teststr"
          

          【讨论】:

            【解决方案5】:
            VAR=$VAR"$VARTOADD(STRING)"   
            echo $VAR
            

            【讨论】:

              【解决方案6】:
              #!/bin/bash
              
              msg1=${1} #First Parameter
              msg2=${2} #Second Parameter
              
              concatString=$msg1"$msg2" #Concatenated String
              concatString2="$msg1$msg2"
              
              echo $concatString 
              echo $concatString2
              

              【讨论】:

                【解决方案7】:

                谢谢伊格纳西奥·巴斯克斯-艾布拉姆斯

                为了更好的易用性,我稍作调整:)

                放置在脚本顶部

                NEW_LINE=$'\n'
                

                然后与其他变量一起轻松使用

                variable1="test1"
                variable2="test2"
                
                DESCRIPTION="$variable1$NEW_LINE$variable2$NEW_LINE"
                

                或 附加谢谢你 William Pursell

                DESCRIPTION="$variable1$NEW_LINE"
                DESCRIPTION+="$variable2$NEW_LINE"
                
                echo "$DESCRIPTION"
                

                【讨论】:

                • 为什么不直接做 DESCRIPTION="${variable1}\n${variable2}\n" 呢?似乎是实现相同目标的一种更简洁的方法,除非我遗漏了什么。
                • 有区别,我刚刚测试过。使用那种方法,我需要 -e 如果我要回应它,我建议你不要这样做。所以他们的与众不同!
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2012-08-12
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-06-26
                • 2012-01-12
                • 1970-01-01
                相关资源
                最近更新 更多