我有以下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"
}
我在这里做什么错了?
答案 0 :(得分:5)
您不引用函数的主体。而且此处文档不应该缩进。
function npmrcpersonal() {
cat > ~/Desktop/stuffs/data.txt <<EOL
Line 1
Hello world
Another line
EOL
}
EOL
标记仅在位于左边距时才会被识别(除非您使用<<-EOL
,然后才允许将其缩进,但只能使用TAB
个字符,不能使用空格) 。此处的其余文档不应缩进,因为这些空格将进入文件,并且您可能不希望这样做。