bash对返回值做出决定

时间:2015-11-27 11:30:58

标签: bash variables for-loop expect

我有一个脚本,它从keepass数据库(kpcli)找到用户名,密码和IP地址,并有一个变量$ ssh_info,它将输出返回到3行,如下所示

bobuser
bobpassword
bobip

对于我来说,在bash脚本中最好的方式是什么,然后说取$ ssh_info的结果

ssh bobuser@bobip and then use expect to send the password

这样的东西
echo "$2"  (bobpassword)
ssh $1@$3  (ssh bobuser@bobip)

甚至是一个期望脚本将$ 2(bobpassword)传递给ssh $ 1 @ $ 3

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

也许这就是你想到的?

[DataContract(IsReference = true)]
public class MaterialCategory
{
    [DataMember]
    public int Id { get; set; }
    [DataMember]
    public string Name { get; set; }

    [DataMember]
    [JsonIgnore]
    public virtual ICollection<Material> Materials { get; set; }
}

使用shell变量expect <<END_EXPECT lassign [split "$ssh_info" \n] user pw ip ssh \$user@\$ip expect "assword:" send -- "\$pw\r" interact END_EXPECT 。 Tcl变量需要反斜杠才能将它们隐藏在shell中。

如果你想在shell中拆分多行字符串,我会做一个

$ssh_info