为什么bash会吞并角色
我在bash脚本中有以下代码:为什么bash会吞并角色,bash,stdin,Bash,Stdin,我在bash脚本中有以下代码: ssh_management if [[ "$PROMPT_SSH" == "true" ]]; then read -p "Generate and Install SSH keys? [y/n]" -n 1 -r echo "" if [[ $REPLY =~ ^[Yy]$ ]]; then generate_container_ssh install_
ssh_management
if [[ "$PROMPT_SSH" == "true" ]]; then
read -p "Generate and Install SSH keys? [y/n]" -n 1 -r
echo ""
if [[ $REPLY =~ ^[Yy]$ ]]; then
generate_container_ssh
install_ssh_keys
check_ssh_state
else
echo "Skipping SSH key install"
fi
fi
install_docker
但脚本错误如下:
Skipping container SSH key install
bash: line 102: nstall_docker: command not found
看来read命令不知何故在install\u docker
不知道为什么会发生这种情况,也不知道它是如何解决的。似乎有什么东西把我的标准输入搞砸了
read -p "Generate and Install SSH keys? [y/n]" -n 1 -r < /dev/tty
read-p“生成并安装SSH密钥?[y/n]”-n 1-r
已修复该问题。
读取命令似乎正常,然后删除读取
,然后重试<代码>为什么会发生这种情况
第102行是哪一行?运行时是否正在修改文件?文件中是否没有nstall\u docker
?文件中是否有不可打印的字符?当您使用需要LF的操作系统时,您的文件是否可能有Windows样式的CRLF行结尾?@KamilCuk删除读取行修复了问题(这就是我知道它是读取命令的原因)。第102行是“install_docker”函数。@Shawn我在Windows上开发,但vscode说行尾是LF。我正在WSL和Raspberry Pi上测试这个脚本。