我正在尝试编写一个简单的bash脚本,将多行输出打印到另一个文件中。我是通过 heredoc
格式实现的:
#!/bin/sh
echo "Hello!"
cat <<EOF > ~/Desktop/what.txt
a=`echo $1 | awk -F. '{print $NF}'`
b=`echo $2 | tr '[:upper:]' '[:lower:]'`
EOF
我原本期望在我的桌面上看到一个包含以下内容的文件:
a=`echo $1 | awk -F. '{print $NF}'`
b=`echo $2 | tr '[:upper:]' '[:lower:]'`
但是实际上,我看到的是这些内容出现在我的
what.txt
文件中:a=
b=
不知何故,尽管它是heredoc
的一部分,但bash仍在逐行执行它。我该如何防止这种情况,并将内容按原样打印到文件中?
<<EOF
替换为<<'EOF'
。 - Cyrus