bash - 在bash中附加两个变量的字符
问题描述
嗨,我将输出存储在两个变量中。比方说:
echo "$varA"
Cow
Dog
Horse
和
echo "$varB"
1
2
3
我需要像 var3 这样的输出
Cow:::1
Dog:::2
Horse:::3
我怎样才能用循环做到这一点?如果我使用两个循环,那么内部循环将为牛、狗和马(每个)运行三次。在执行 1 次后我找不到退出内部循环的方法,并且这里没有 goto 语句。
还有其他建议吗?
谢谢。
解决方案
数组(请参阅@oguzismail 的答案)是执行此操作的更好方法,但如果您确实需要在字符串变量中使用行(可能是换行符分隔)来执行此操作,您可以使用lam
(laminate) 命令:
var3=$(lam <(echo "$varA") -s ":::" <(echo "$varB"))
请注意,这使用进程替换(<( )
位)通过文件名将两个输入变量lam
作为输入提供。这是一个仅限 bash 的功能,因此您只能在 bash shell 中使用它。如果它在脚本中,请使用显式的 bash shebang 行 ( #!/bin/bash
or ) 或使用( not#!/usr/bin/env bash
)运行它。bash scriptname
sh scriptname