初学者关于 sh 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ivanlw
V2EX    Bash

初学者关于 sh 的问题

  •  
  •   ivanlw 2014-07-02 02:30:22 +08:00 3025 次点击
    这是一个创建于 4171 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近刚接触sh,知道写一个文件包含多句命,能依次执行下来。
    现在想实现一个功能,就是其中一个命令会进入另外一个程序,然后在那个程序里面执行这个文件的下一句话,这样子有可能实现吗?
    比如说
    # ----sh file----
    mysql
    show databases;
    # ----end----
    这样子把mysql里面的databases打出来?试了一下是不行的,有没有实现这样子的解决方法呢?
    5 条回复    2014-07-02 09:01:28 +08:00
    yangqi
        1
    yangqi  
       2014-07-02 02:39:57 +08:00   1
    mysql -u user -p password -e 'show databases'
    multiple1902
        2
    multiple1902  
       2014-07-02 02:40:04 +08:00 via Android   1
    有个叫 expect 的工具就可以用来解决这个,经常用在 ssh 连接自动输入密码这件事上。

    具体到你的例子,建议你考虑能不能争取把那个子命令作为 mysql 命令的参数,这样整个就是一个命令把事搞定,这样更符合 bash 的编程思想吧。
    Comphuse
        3
    Comphuse  
       2014-07-02 02:51:38 +08:00
    echo "show databases" | mysql -u 用户名 -p密码。 # -p 和 密码之间没有空格。
    mysql -u 用户名 -p密码 < SQL脚本文件。
    blacktulip
        4
    blacktulip  
       2014-07-02 02:54:10 +08:00
    mysql -h localhost -u <USERNAME> -p="<PASSWORD>" -D <DATABASE> -e "show databases;show databases;show databases"
    orzfly
        5
    orzfly  
       2014-07-02 09:01:28 +08:00
    http://stackoverflow.com/a/6150728/2724079

    mysql --host=localhost --user=user --password=password << 'END'

    CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'jakdJxct8W';
    CREATE DATABASE IF NOT EXISTS 'testuser_dev' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
    GRANT ALL PRIVILEGES ON 'testuser_dev' . * TO 'testuser'@'localhost';
    CREATE DATABASE IF NOT EXISTS 'testuser_qa' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
    GRANT ALL PRIVILEGES ON 'testuser_qa' . * TO 'testuser'@'localhost';

    END
    < href="/about" class="dark" target="_self">关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5107 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 09:22 PVG 17:22 LAX 01:22 JFK 04:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86