Bash 创建多行文件的别名或函数

Bash alias or function to create multiline file

我有以下 bash 命令在当前目录中创建多行文件:

cat > data.txt <<EOL
Line 1
Another line
Something else
EOL

我正在尝试为 运行 此命令创建 bash 别名或函数。我尝试了以下但没有任何反应:

alias create-file="
cat > ~/Desktop/stuffs/data.txt <<EOL
Line 1
Hello world
Another line
EOL"

尝试该功能也不走运:

function npmrcpersonal() {
  "cat > ~/Desktop/stuffs/data.txt <<EOL
  Line 1
  Hello world
  Another line
  EOL"
}

我做错了什么?

你没有引用函数体。此处的文档不应缩进。

function npmrcpersonal() {
  cat > ~/Desktop/stuffs/data.txt <<EOL
Line 1
Hello world
Another line
EOL
}

EOL 标记只有在左边距时才会被识别(除非你使用 <<-EOL,然后允许缩进,但只能使用 TAB 个字符,而不是空格)。 here-doc 的其余部分不应缩进,因为这些空格会进入文件,而您可能不希望这样。