我通过 WSL 使用 Ubuntu 16.04 (xenial)。
我复制此代码
#!/bin/bash
read -p "Have you created db credentials already?" yn
case $yn in
[Yy]* ) break;;
[Nn]* ) exit;;
esac
当我将其粘贴到 Ubuntu 中时,我只得到其中的一部分:
read -p "Have you created db credentials already?" yn
Have you created db credentials already?
为什么粘贴的时候只粘贴了一部分?
更新
我从 GitHub 复制代码,当条件case
用制表符缩进并且代码最后一行没有换行符(最后一行后没有多余的空注释)时。
答案1
一旦调用“read -p”行,终端就会清除您原始的粘贴缓冲区,因为它正在等待有意义的用户输入,而您不能像这样将其粘贴到终端中。
如果您不想创建脚本文件,请在终端中按 ctrl-x 然后按 ctrl-e,它将调出默认编辑器。将其粘贴到编辑器中,保存并退出,dash 将从临时文件中正确运行您的脚本。