【问题标题】:How to concat variable and string in bash script如何在 bash 脚本中连接变量和字符串
【发布时间】:2015-12-18 06:00:50
【问题描述】:

如何在 bash 脚本中连接变量和字符串?

val1 = Variable1 + "any string "

例如:

val1 = $i + "-i-*"

其中 i = 3 月 24 日

我想要回显 val1:

24thMarch-i-*

获得解决方案的正确方法是什么?

【问题讨论】:

  • val1="$i-i-*" 应该可以工作。关于你的第一个问题:val1="${Variable1}any string"(注意花饰)。
  • uuups,刚刚看到@gniourf 在我的回答中已经有了和我一样的想法。

标签: bash shell scripting concatenation concat


【解决方案1】:

字符串在 shell 中默认连接。

value="$variable"text"$other_variable"

通常认为将变量扩展用双引号括起来是一种好习惯。

您也可以这样做:

value="${variable}text${other_variable}"

花括号在处理混合变量名和字符串时很有用。

请注意,作业中的= 周围不应有空格。

【讨论】:

  • 我没有提到任何关于单引号的事情。在第二个示例中,需要大括号将变量名称与文字分开。当然,不需要围绕第二个变量的花括号,因为它没有歧义。第二个示例中的双引号 是多余的,因为没有空格,但它们不会造成任何伤害。
【解决方案2】:

聚会迟到了,我的 2 美分换另一种解决方案。也适用于 zsh

i=`date +%d%b`

val1="$i-i-*"

【讨论】:

  • @LogicalBranch 我回滚了你的编辑;它引入了错误。
  • @PeterPanX 同上;您的“错字修复”破坏了非常好的有效代码。
  • @tripleee 啊!没有意识到,谢谢提醒。
【解决方案3】:

不错。

Mac OS X 10.12 适用于以下 ...


#!/bin/bash

var1=bar
var2=foo
var3="$var1"sometext
echo $var3

结果

= barfoosometext

【讨论】:

  • 结果中来自var2("foo")的值是从哪里来的?
猜你喜欢
  • 2018-12-07
  • 2011-05-10
  • 1970-01-01
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多