我正在对Shell脚本进行小的编辑,以掩盖密码输入,如下所示:
#!/bin/bash
printf "Enter login and press [ENTER]\n"
read user
printf "Enter password and press [ENTER]\n"
read -s -p pass
将read -s -p pass
作为更新的部分。出于某些原因,通过在命令行中输入script.sh
正常运行时看不到更改,但是运行sh script.sh
时却可以看到更改。我尝试打开新的终端窗口,并在ITerm和默认的Mac终端中运行它。我离脚本编写大师还很远,有人知道为什么没有前缀就看不到更改吗?
答案 0 :(得分:2)
使用脚本的完整或相对路径来确保您正在运行自己认为正在运行的内容。
如果您仅以script.sh
的身份运行它,那么外壳将通过PATH
环境变量查找来定位它。要查看在这种情况下将使用哪种script.sh
bash,请运行type script.sh
。
./script.sh
/path/to/my/script.sh