如何在sh中向变量追加换行符?

16 浏览
0 Comments

如何在sh中向变量追加换行符?

var = "一个普通的字符串 \n $var"

我将这个var传递给其他方法,并且在那个方法中打印var。我不能编辑那个方法。所以我不能使用echo -eprintf语句。但是我需要将\ n打印为换行符,而不是作为字面量。

0
0 Comments

问题的出现原因是在shell脚本中,如果要给变量追加一个新行,常规的字符串拼接方式是不起作用的。解决方法是使用printf函数或者$'...'构造。

在shell脚本中,如果要给变量追加一个新行,可以使用printf函数。具体代码如下:

var=$(printf "a common string\n%s" "$var")

另一种方法是在较新版本的bash中使用printf的-v选项:

printf -v var "a common string\n%s" "$var"

如果你的shell支持$'...'构造,你也可以使用这种方式来追加新行:

var=$'a common string \n'"$var"

以上就是在shell中给变量追加新行的解决方法。

0
0 Comments

问题出现的原因:

在Shell脚本中,如果我们希望在变量中添加换行符,以便在循环中逐行打印每个项目,我们可以将变量视为一个以'\n'作为分隔符的列表。然而,有时候我们可能会遇到不知道如何实现这一目标的问题。

解决方法:

为了解决这个问题,我们可以使用以下代码来将换行符添加到变量中,并在循环中逐行打印每个项目:

for item in $var; do 
  echo $item
done

以上代码将变量$var的每个项目作为循环的一部分,使用echo命令逐行打印每个项目。这样,我们就能够在Shell脚本中实现将换行符添加到变量并逐行打印每个项目的目标。

0