我在 WSL 中粘贴了代码,但只得到了其中的一部分

我在 WSL 中粘贴了代码,但只得到了其中的一部分

我通过 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 将从临时文件中正确运行您的脚本。

相关内容