位置:海鸟网 > IT > linux/Unix >

Linux下cat<<eof替换多行echo

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中含有`的时候会将``内的命令转换成结果,同样也需要添加转义字符比如   Linux安装的几点经验

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