您的位置:首页 > 运维架构 > Linux

Linux下cat <<eof替换多行echo

2012-01-30 18:55 225 查看
转载请注明文章转载自:Dbabc.Net [http://dbabc.net]

本文链接:http://dbabc.net/archives/2011/10/10/linux-cat-eof-of-echo.shtml

今天在写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

在mysql数据库操作:

#!/bin/bash
mysql_user=root
mysql_password=abc/123
mysql -u $mysql_user -p$mysql_password <<EOF
create database xuqq;
EOF


附录:Linux cat使用详解:http://wenku.baidu.com/view/5171c3d133d4b14e852468f9.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: