bash 根据返回值做出决定
bash making decisions on returned values
我有一个脚本可以从 keepass 数据库 (kpcli) 中找到用户名、密码和 IP 地址,并且有一个变量 $ssh_info returns 输出到 3 行,如下所示
bobuser
bobpassword
bobip
我在 bash 脚本中最好的方法是什么,然后说获取 $ssh_info
的结果
ssh bobuser@bobip and then use expect to send the password
类似
echo "" (bobpassword)
ssh @ (ssh bobuser@bobip)
甚至是将 $2 (bobpassword) 传递到 ssh $1@$3
的期望脚本
感谢您的帮助!
也许这就是您的想法?
expect <<END_EXPECT
lassign [split "$ssh_info" \n] user pw ip
ssh $user@$ip
expect "assword:"
send -- "$pw\r"
interact
END_EXPECT
即使用shell变量$ssh_info
。 Tcl 变量需要一个反斜杠来隐藏它们 shell.
如果要拆分 shell 中的多行字符串,我会执行以下操作之一
{ read user; read pw; read ip; } <<<"$ssh_info"
mapfile -t info <<<"$ssh_info" # then use ${info[0]}, ${info[1]}, ${info[2]}
我有一个脚本可以从 keepass 数据库 (kpcli) 中找到用户名、密码和 IP 地址,并且有一个变量 $ssh_info returns 输出到 3 行,如下所示
bobuser
bobpassword
bobip
我在 bash 脚本中最好的方法是什么,然后说获取 $ssh_info
的结果ssh bobuser@bobip and then use expect to send the password
类似
echo "" (bobpassword)
ssh @ (ssh bobuser@bobip)
甚至是将 $2 (bobpassword) 传递到 ssh $1@$3
的期望脚本感谢您的帮助!
也许这就是您的想法?
expect <<END_EXPECT
lassign [split "$ssh_info" \n] user pw ip
ssh $user@$ip
expect "assword:"
send -- "$pw\r"
interact
END_EXPECT
即使用shell变量$ssh_info
。 Tcl 变量需要一个反斜杠来隐藏它们 shell.
如果要拆分 shell 中的多行字符串,我会执行以下操作之一
{ read user; read pw; read ip; } <<<"$ssh_info"
mapfile -t info <<<"$ssh_info" # then use ${info[0]}, ${info[1]}, ${info[2]}