Linux下cat <<eof替换多行echo

今天在写Oracle安装前的环境配置脚本的时候,要在/etc/sysctl.conf文件上添加多行,之前是用的echo,觉得有点麻烦,发现可以通过cat << EOF替换。

cat << EOF >> /etc/sysctl.conf
###install oracle by liups echo begin
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
###install oracle by liups echo end
EOF
这样就可以轻松搞定了,不需要每次都得修改echo里面的值了。,

发现在cat <<eof中如果带有 $变量的时候会将$和变量名变成空格,想到到转义字符添加之后可以搞定。同样cat <<eof中含有`的时候会将``内的命令转换成结果,同样也需要添加转义字符比如

cat << EOF >/home/oracle/.bash_profile
PATH=$PATH:$HOME/bin
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/10.2.0/db_1
export ORACLE_SID=yqpt
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
EOF

你可能感兴趣的:(Linux下cat <<eof替换多行echo)