当前位置:  技术问答>linux和unix

高分问个脚本编写问题!!!

    来源: 互联网  发布时间:2016-05-17

    本文导语:  我想编写这样一个脚本 在脚本里调用一个shell命令程序 比如sqlite3,这个程序运行后,会出一个命令行界面 如: sqlite> 正常运行是这样的 sqlite>.help 就会给出帮助列表 那我如何在脚本程序里给这个命令行里送字符命令...

我想编写这样一个脚本
在脚本里调用一个shell命令程序
比如sqlite3,这个程序运行后,会出一个命令行界面

如:
sqlite>
正常运行是这样的
sqlite>.help
就会给出帮助列表

那我如何在脚本程序里给这个命令行里送字符命令呢?比如送".help"

这个脚本该如何写?多谢各位。

|
1、你用crontab 调用shell不可以么
2、(转别人的文章给你看一下)

在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)

    * fork  ( /directory/script.sh)

    fork是最普通的, 就是直接在脚本里面用/directory/script.sh来调用script.sh这个脚本.

    运行的时候开一个sub-shell执行调用的脚本,sub-shell执行的时候, parent-shell还在。

    sub-shell执行完毕后返回parent-shell. sub-shell从parent-shell继承环境变量.但是sub-shell中的环境变量不会带回parent-shell

    *
      exec (exec /directory/script.sh)

    exec与fork不同,不需要新开一个sub-shell来执行被调用的脚本.  被调用的脚本与父脚本在同一个shell内执行。但是使用exec调用一个新脚本以后, 父脚本中exec行之后的内容就不会再执行了。这是exec和source的区别

    *
      source (source /directory/script.sh)

    与fork的区别是不新开一个sub-shell来执行被调用的脚本,而是在同一个shell中执行. 所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用.


可以通过下面这两个脚本来体会三种调用方式的不同:

1.sh 

    #!/bin/bash
    A=B
    echo "PID for 1.sh before exec/source/fork:$$"
    export A
    echo "1.sh: $A is $A"
    case $1 in
            exec)
                    echo "using exec…"
                    exec ./2.sh ;;
            source)
                    echo "using source…"
                    . ./2.sh ;;
            *)
                    echo "using fork by default…"
                    ./2.sh ;;
    esac
    echo "PID for 1.sh after exec/source/fork:$$"
    echo "1.sh: $A is $A"

2.sh 

    #!/bin/bash
    echo "PID for 2.sh: $$"
    echo "2.sh get $A=$A from 1.sh"
    A=C
    export A
    echo "2.sh: $A is $A"

     

     

    执行情况:

    $ ./1.sh    
    PID for 1.sh before exec/source/fork:5845364
    1.sh: $A is B
    using fork by default…
    PID for 2.sh: 5242940
    2.sh get $A=B from 1.sh
    2.sh: $A is C
    PID for 1.sh after exec/source/fork:5845364
    1.sh: $A is B
    $ ./1.sh exec
    PID for 1.sh before exec/source/fork:5562668
    1.sh: $A is B
    using exec…
    PID for 2.sh: 5562668
    2.sh get $A=B from 1.sh
    2.sh: $A is C
    $ ./1.sh source
    PID for 1.sh before exec/source/fork:5156894
    1.sh: $A is B
    using source…
    PID for 2.sh: 5156894
    2.sh get $A=B from 1.sh
    2.sh: $A is C
    PID for 1.sh after exec/source/fork:5156894
    1.sh: $A is C
    $ 


|
运用Here Doc技术就可以实现交互,比如:
sqllite3 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 谁参加过weblogic的证书考试,是否有经验可供参考?高分高分高高分
  • 哪里有JB6下载啊,高分相送,救命
  • 高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!!
  • 哪里去找中文的EJB文章?高分悬赏!
  • 高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!! iis7站长之家
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 高分寻求jsp代码(网上调查系统,新闻发布系统)就这点分了
  • 高分求购做饼图、线形图的源吗?
  • 关于linu下的中文输入.(高分:300)
  • 一个简单的问题,高分求助!!!
  • 高分求购jbulider6得注册码,企业版本,个人版本都要
  • Linux远程访问的问题,高分求教:)
  • 请问哪儿有Solaris8的光盘映像文件下载???高分相赠!!!
  • 高分求“Ration Rose”&"JBuilder6.0"&"VisualCafe"
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求购:linux和unix命令大全电子文档
  • 急救:关于BLOB数据类型---在线等待,高分相送!
  • 求UNIXWARE7.11的原版下载,高分相赠,在线等待!!!
  • 关于java?高分相送!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3