我尝试运行此代码:
#!/bin/bash
read -s "Password: " password
使用命令:
run sh init.sh
它会抛出错误:read: Illegal option -s
。任何帮助。
答案 0 :(得分:8)
我认为你使用Debian / Ubuntu或者BSD衍生物?
当您执行run sh init.sh
之类的命令时(尽管我自己并不熟悉此run
命令),您正在覆盖#!/bin/bash
shebang。在您的情况下,sh
是一个严格遵守的POSIX shell,例如dash
,其中read
唯一不是扩展名的参数是-r
。
所以也许您想要使用run bash init.sh
代替?
答案 1 :(得分:0)
您需要-p
使用prompt
选项:
read -sp "Password: " password
根据help read
:
-p prompt output the string PROMPT without a trailing newline before
attempting to read