【问题标题】:Appending text to the end of a variable [duplicate]将文本附加到变量的末尾[重复]
【发布时间】:2014-08-04 06:47:32
【问题描述】:

以下工作,但我不想要它返回的空间:

read input
file= "$input"
file= "$file ins.b" # how to get rid of the space here?
echo "$file"

这会输出“文件 ins.b” 我不想要 file 和 ins.b 之间的空间

如果我不在代码中留下那个空格,它只会返回“.b”。我该怎么做才能解决这个问题?

【问题讨论】:

  • 查看How can I concatenate string variables in Bash。它不是完全重复的,因为它想要您不想要的空间,但是一些答案涵盖了您需要涵盖的情况。 (例如,您可以使用file="$file""ins.b"file="$file"ins.b;这些是涵盖的替代方案,以及简单的file="${file}ins.b"。)

标签: bash shell string-concatenation


【解决方案1】:

附加如下:

file="${file}ins.b" 

如果您不使用大括号,那么它将fileins 视为变量并展开它。因为,它可能没有设置它只是打印.b

相关:When do we need curly braces in variables using Bash?

【讨论】:

    【解决方案2】:

    在 bash 中,您还可以引用 ${file} 等变量。所以这应该适合你:

    file="${file}ins.b"
    

    【讨论】:

      【解决方案3】:

      您根本不需要扩展旧值; bash 有一个 += 运算符:

      file+="ins.b"
      

      【讨论】:

        【解决方案4】:
        file="${file}ins.b"
        

        file=$file"ins.b"
        

        【讨论】:

          猜你喜欢
          • 2014-05-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-25
          • 2017-06-15
          相关资源
          最近更新 更多