繁体   English   中英

如何 cat 多行 bash 变量?

[英]How to cat multi-line bash variables?

当我尝试保存 bash 变量列,然后尝试将它们组合在一起时,出现错误。

这些是变量:

$ a_var=$(grep -i "word" {input} | awk '{print $3}')

$ echo $a_var
hello1
hello2
hello3

$ b_var=$(grep -i "otherword" {input} | awk '{print $3}')

$ echo $b_var
hello10
hello11
hello12

但是当我尝试时:

$ new_var=$(cat $a $b)

我得到一些无法保存到文件或新变量的奇怪输出。

cat: hello1: No such file or directory
cat: hello2: No such file or directory
cat: hello3: No such file or directory
cat: hello10: No such file or directory
cat: hello11: No such file or directory
cat: hello12: No such file or directory

$ echo $new_var

$

(当我“回声”时,返回空白。)

到底是怎么回事? 如何将我的 bash 变量连接在一起?

编辑:我希望输出看起来像这样(我想将此列值保存到文件中):

hello1
hello2
hello3
hello10
hello11
hello12

尽管 Linux 中的cat代表 concatenate,但它不会作用于变量。 实际上,它用于连接文件并打印到标准输出设备。 对于您的情况,请使用c_var="${a_var}${b_var}"

这是在 shell 中连接这些字符串变量的方式:

c_var="$a_var$b_var" ; 回声 $c_var

或者一般: c="$a$b" ; 回声 $c

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM