让我说~/.netrc
这样的条目很少:
machine *******************
login *******
password **********
machine *********************
login *****************
password **********
使用此脚本我可以通过填充第一个机器块来配置git ftp
从上面:
print "$(awk '/machine/ { skip = !skip; }; skip { print $1" "$2 }' ~/.netrc)" | while read k v
do
case $k in
machine )
print git.config ftp.url $v
;;
login )
print git.config ftp.user $v
;;
password )
print git.config ftp.password $v
esac
done
但是,出于灵活性的原因,我希望能够为此脚本提供一个机器参数 name,以便只从上面使用该块;
如何在阅读awk
时指示~/.netrc
使用该参数并停止使用该参数
下一个机器实例?
编辑:现在我意识到我在代码中还有一个缺陷,而且 那就是:由于跳过开关,每个第二个机器块都会被读取,而我 想要使用一个且只有一个,其中机器名称与用户提供的匹配 参数。
答案 0 :(得分:0)
如果机器名称在掩码字段2中,则可以执行此操作
awk -v RS= -v name="****etc" '$1=="machine" && $2==name {...`
或在awk脚本中对该名称进行硬编码。通过将awk设置为段落模式,您可以将行分组为一个由空行分隔的逻辑记录。