0

在我的脚本中: 1. 我必须通过用户名和密码对机器执行 ssh 2. 比我必须执行 Su - 用户,它提示输入密码 3. 比我必须运行我的命令,即 ls 。

早些时候,没有第 2 步,我很高兴能够使用 sshpass 并通过我的脚本在单行命令中触发我的查询。像这样的东西。sshpass -p pass user@host "command or ls"

但是现在我在 ssh 之后还有一个额外的步骤来执行 su。所以有人可以帮助我理解,我如何在一行查询中同时使用所有 3 个,即 sshpass、su 和命令。

谢谢

4

1 回答 1

0

假设您只想更改该命令的用户,则需要“-c”标志。

su - user -c "[command]"

嵌套引号可能会有点复杂,但在这种情况下,您只需要转义内部的引号。

su - user -c "sshpass -p pass user@host \"command or ls\""
于 2016-02-25T22:34:23.207 回答