嗨,我将输出存储在两个变量中。假设:
echo "$varA"
Cow
Dog
Horse
和
echo "$varB"
1
2
3
我需要像var3这样的输出
Cow:::1
Dog:::2
Horse:::3
我该如何使用循环?如果我使用两个循环,那么内部循环将对牛,狗和马(每个)运行三次。 1次执行后,我找不到退出内循环的方法,这里没有goto语句。
还有其他建议吗?
谢谢。
答案 0 :(得分:1)
为什么不将这些“输出”保留在数组中?喜欢
#include <stdio.h>
void printTagData (TAG_DATA *pTagData)
{
FILE *f = fopen ("text1.txt", "wt");
for (int i = 0; i < pTagData->tagIDLength; i++)
{
if (i > 0 && i % 2 == 0)
fprintf (f, "-");
fprintf (f, "%02X", pTagData->pTagID [i]);
}
fclose (f);
}
然后您可以像这样的单个循环准备varA=(Cow Dog Horse)
varB=(1 2 3)
var3
您可以阅读bash手册中的“数组和循环”部分以获取更多信息。
答案 1 :(得分:1)
数组(请参阅@oguzismail的答案)是执行此操作的更好方法,但是如果您确实需要使用字符串变量中的行(大概以换行分隔),则可以使用lam
(层压)命令:
var3=$(lam <(echo "$varA") -s ":::" <(echo "$varB"))
请注意,这使用进程替换(<( )
位)将两个输入变量作为通过文件名的输入提供给lam
。这是仅用于bash的功能,因此必须仅在bash shell中使用它。如果在脚本中,请使用显式的bash shebang行(#!/bin/bash
或#!/usr/bin/env bash
)或使用bash scriptname
( not sh scriptname
)运行它。