我一直在寻找这个,我想知道是否可以在 shell 脚本中传递密码?许多答案都没有。最近我读了一篇文章,说明如何在 shell 脚本中传递密码。我已经试过了,但它似乎不起作用。这是链接。任何人都可以签出并恢复吗?另外请说我有没有办法在shell脚本中传递密码?如果没有请告诉我 linux 如何获取密码输入?
Lek*_*eyn 14
通过“输入密码”,您可能意味着在用户不可见的情况下输入数据。
(由 geirha 建议)使用 bash 时,您可以使用该-s选项来防止显示键入的字符:
read -p "Password please: " -s pass
Run Code Online (Sandbox Code Playgroud)
或者,更改终端的行为以使用stty -echo(disable echo)隐藏键入的字符。将内置 shell 的密码读read入变量(在下面的示例中,$pass)后,使用stty echo. 因为新行 fromEnter是隐藏的,所以您必须打印一个换行符才能在新行上获得未来的输出。
stty -echo
read -p "Password please: " pass
stty echo
printf '\n'
Run Code Online (Sandbox Code Playgroud)
read并且printf是 shell 内置的。由默认安装stty的coreutils包提供。这意味着这个片段非常便携。
注意:该-p选项不是标准的,而是来自bash. 如果需要在其他 shell 中显示提示,请使用:
printf "Password please: "
stty -echo
read pass
stty echo
printf '\n'
Run Code Online (Sandbox Code Playgroud)
参考: