将 SSH 与 shell 脚本结合使用可以手动输入,但不能使用参数

将 SSH 与 shell 脚本结合使用可以手动输入,但不能使用参数

我有一个 shell 脚本,authenticate.sh看起来像

#!/bin/bash
sshpass -p '$1' ssh $2@localhost

我称之为使用

bash authenticate.sh password username

但当我运行它时,我收到“权限被拒绝,请重试”。如果我跑

#!/bin/bash
sshpass -p 'password' ssh user@localhost

有用...

有什么帮助吗?

答案1

单撇号一定是刚刚把脚本搞乱了,请参阅下面的注释。

这按预期工作:

#!/bin/bash
sshpass -p "$1" ssh "$2"@localhost

这是因为单撇号不允许在内部扩展任何变量。

相关内容