for i in `cat filename.lst|awk '{print $1}{print $2 > var1}'`
do
echo "$i and $var1"
done
但不起作用, 我有文件
xyz 123
abc 456
pqr 789
预期输出:-
xyz and 123
abc and 456
pqr and 789
答案 0 :(得分:2)
您似乎正在寻找类似的东西
while read -r i value; do
var1=$value
echo "$i and $var1"
done <filename.lst
您要avoid reading lines with for
和useless use of cat
。
Awk无法操纵Bash变量,并且Bash不知道Awk脚本中会发生什么。
如果您绝对坚持使用Awk,则希望它的输出是一个字符串,您可以从外壳程序中安全地eval
。
eval "$(awk '{ print "var1=\047" $2 "\047;\n" \
"echo \"" $1 " and \$var1\"" }' filename.lst)"
“安全”的确切定义可能很难准确地加以界定。换句话说,真的就是不这样做。
答案 1 :(得分:0)
node('master'){
def gitTag="mytag"
sh "touch webservice_version.py"
sh "echo \\\"${gitTag}\\\" > webservice_version.py"
sh "cat webservice_version.py"
}
如果这还不是您想要的,那么请编辑您的问题以阐明您的要求并提供更真实的示例。