Chinaunix首页 | 论坛 | 博客
  • 博客访问: 283630
  • 博文数量: 70
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 531
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-12 20:22
个人简介

1.01^365=37.8 0.99^365=0.03

文章分类

全部博文(70)

文章存档

2017年(9)

2016年(4)

2015年(14)

2014年(43)

我的朋友

分类: 其他UNIX

2014-10-09 12:58:00

Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。如下:

export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
sqlplus $USERID @$OUT_FILE << EOF
exit
EOF

当把这段代码放在Shell中时,会在Shell脚本执行完毕后自动退出SQLPLUS的命令提示符状态。

< (内容)
EOF


可以把EOF替换成其他东西
意思是把内容当作标准输入传给程序
这里再简要回顾一下< <的用法。当s h e l l看到< <的时候,它就会知道下一个词是一个分界
符。在该分界符以后的内容都被当作输入,直到s h e l l又看到该分界符(位于单独的一行)。这个
分界符可以是你所定义的任何字符串。

----------------------------------------------------------------------------------------------------------

su - oracle -c "sqlplus username/password"< 其中:
su: 切换用户
-: 使用orcale的环境设置
-c: 执行后面的命令

< 当第三行出现EOF的时候,shell认为输入结束;并将输入传递给sqlplus命令
<
不是遇到eof结束,其实是说你开始和结束要匹配这个符号“<<”后面的内容
举例子哈

代码:su - oracle -c "sqlplus username/password" < 此时屏幕显示:sqlplus username/password
然后你输入:user001
                     user001
代码:abc           
 
 ----------------------------------------------------------------------------------------------------------                   
<< EOF 是执行一命令,命令从< ftp -n << EOF
open $host 21
user $user $password
cd $remote_dir
lcd $local_dir
get $file_name
bye
EOF


<<- EOF 与 << EOF 只有细微的差别(在菜单式命令中每行的开头可以不必顶格),下面这段代码使用< ftp -n <<- EOF
        open $host 21
        user $user $password
        cd $remote_dir
        lcd $local_dir
        get $file_name
        bye
        EOF

EOF并不是唯一的,例如可以这样:
ftp -n <<- !
        open $host 21
        user $user $password
        cd $remote_dir
        lcd $local_dir
        get $file_name
        bye
        !
阅读(1433) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~