阅读:shell脚本中的非法选项-s

时间:2016-03-25 06:12:57

标签: bash shell

我尝试运行此代码:

#!/bin/bash
read -s "Password: " password

使用命令:

run sh init.sh

它会抛出错误:read: Illegal option -s。任何帮助。

2 个答案:

答案 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