Bash别名或创建多行文件的功能

时间:2019-02-28 04:59:28

标签: bash alias eol

我有以下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"
}

我在这里做什么错了?

1 个答案:

答案 0 :(得分:5)

您不引用函数的主体。而且此处文档不应该缩进。

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

EOL标记仅在位于左边距时才会被识别(除非您使用<<-EOL,然后才允许将其缩进,但只能使用TAB个字符,不能使用空格) 。此处的其余文档不应缩进,因为这些空格将进入文件,并且您可能不希望这样做。