zoukankan      html  css  js  c++  java
  • Shell脚本中的交互式命令处理

    先贴代码:

    DATE=`date -d -1hour +%T`
    fileName=erver_`date -d now +%Y-%m-%d-%H%M%S`.txt
    cp /home/BLload_bak/$fileName
    
    HOST='ipxxx.xxx.xxx.xxx'
    PORT='21'
    USER='xx'
    PASSWD='xx'
    FILE=$fileName
    
    # 注意Here Document中引用的变量必须大写
    /usr/bin/ftp -i -n $HOST $PORT <<EOF
    user ${USER} ${PASSWD}
    binary
    lcd /home/adminxcb/cron/BLload_bak
    put $FILE
    quit
    EOF

    主要记录点在于,通过shell自动和ftp命令交互,也就是<<EOF和最后以EOF结束的中间那部分代码,<<是shell中Here Document的表示方法(具体解释百度或谷歌吧)。

    ftp有个-i参数需要注意一下:-i表示多个文件传送时关闭交互提示。

    基于这些又写了个小练习,来简化mongodb的数据查询,代码如下:

    #/usr/bin/bash
    stty erase '^H'
    
    while true; do
            read -p "> " cmd
            if [ "$cmd"x == "quit"x ]; then
                    break
            fi
            CMD=$cmd
    
            mongo 127.0.0.1 <<EOF
    use WebInfo
    db.auth("mo", "mo")
    db.$CMD
    EOF
    done

    上述代码中stty erase '^H' 是为了清除输入过程中按退格出现的^H字符。

    if对比字符串时需要使用双引号。

  • 相关阅读:
    mac-常用命令
    react-redux-数据流
    ##通讯录阶段重要代码
    ##DAY15——UICollectionView
    ##DAY14——StoryBoard
    通讯录——单例
    通讯录——选择图片
    ##DAY13——可视化编程之XIB
    ##DAY12 UITableViewCell自定义
    ##DAY10 UITableView基础
  • 原文地址:https://www.cnblogs.com/jasondan/p/3492921.html
Copyright © 2011-2022 走看看