我正在尝试使用stdin传递密码,但收到错误。以下是我尝试的内容。
stdin
echo myPassword | sudo -S su - userName -s /bin/bash echo 'myPassword' | sudo -S su - userName -s /bin/bash
在这两种情况下,我都得到-bash: line 1: myPassword: command not found的错误我该如何解决这个问题?
-bash: line 1: myPassword: command not found
jljoyd4f1#
您的密码不以换行符结尾。请尝试以下操作
echo -n 'myPassword' | sudo -S su - userName -s /bin/bash
qyswt5oh2#
在你的例子中,你使用了一个echo命令而不是'sudo',这就是为什么会发生错误。你可以使用这个命令:
sudo -S <<< "myPassword" su - userName -s /bin/bash
或者,您可以使用printf命令来传递密码:
printf "myPassword\n" | sudo -S su - userName -s /bin/bash
2条答案
按热度按时间jljoyd4f1#
您的密码不以换行符结尾。请尝试以下操作
qyswt5oh2#
在你的例子中,你使用了一个echo命令而不是'sudo',这就是为什么会发生错误。你可以使用这个命令:
或者,您可以使用printf命令来传递密码: