【问题标题】:Read input without echoing is not working (bash Shell Script)没有回显的读取输入不起作用(bash Shell 脚本)
【发布时间】:2019-07-02 09:48:44
【问题描述】:

“-s”开关不工作 bash shell 脚本。它会在不提示输入密码的情况下引发错误。

使用:Ubuntu 16.04.6 LTS

我错过了什么吗?

#!/bin/bash

echo "Enter password"
read -s password
echo "password:" $password

输入密码 test.sh:4:读取:非法选项-s 密码:

【问题讨论】:

  • type read 的输出是什么?
  • 输出:read 是一个内置的 shell

标签: linux bash shell echo


【解决方案1】:

您正在使用sh 运行脚本,而不是bash,它提供了相关功能。直接使用 bash 调用脚本:

bash test.sh

或者使文件可执行,以便解释器读取您的 shebang:

chmod +x test.sh    # only required once
./test.sh

.sh 扩展是不必要的,除非您在某些特殊目录中运行实际的 POSIX shell 脚本。

【讨论】:

  • bash test.sh 有效。谢谢。你能分享一下细节或一些关于差异的文章吗?
  • sh 是 POSIX Shell。它很老了。 bash 是 Bourne Again SHell;一种已经演变成一种混合命令/脚本语言的替代品。 Bash 有很多特性,将两者进行比较是不公平的,但是有一些非常古老的系统没有它。我们还使用sh 来运行引导序列,而无需加载bash 所需的所有资源。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 2013-07-10
  • 2019-09-16
  • 1970-01-01
相关资源
最近更新 更多