Cho*_*per 19 linux bash shell-script
我想做这样的事情:
$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end
$ cat test
My name is John
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
rus*_*ush 27
cat <<EOF > test
My name is $NAME
EOF
Run Code Online (Sandbox Code Playgroud)
甚至
cat <<==end > test
My name is $NAME
==end
Run Code Online (Sandbox Code Playgroud)
为我工作。
当你像看起来==end
的'
变量不能代替。
啊,这是在手册页中(看 3.6.6):
here-document 的格式为:
Run Code Online (Sandbox Code Playgroud)<<[-]word here-document delimiter
不会对word执行参数扩展、命令替换、算术扩展或路径名扩展。如果word中的任何字符被引用,则 分隔符是word上引用去除的结果,并且here-document中的行没有被扩展。如果word 没有被引用,here-document 的所有行都会进行参数扩展、命令替换和算术扩展。[...]