Problem with return variable in bash

前端 未结 3 1217
闹比i
闹比i 2020-12-11 22:12

This mysql command line return me: count(*) 19. It\'s a big problem for me because I just want 19 to make a loop with this number. How can

3条回答
  •  Happy的楠姐
    2020-12-11 22:48

    An easier way is :

    var=$(mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe --batch --skip-column-names -Dshop -e "select count(*) from shop_tab where catalog <> ''")
    

    Moreover, I'll preconize the use of function in order to easily add options to the MySQL command without having to modifying all your script.

    function MysqlQuery() {
        mysql -h abcdcef.com --port=3306 --user=root --password=hbbfe --batch --skip-column-names -D "$1" -e "$2";
    }
    
    va=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> ''")
    vaABC=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> 'abc'")
    vadef=$(MysqlQuery Shop "SELECT COUNT(*) FROM shop_tab WHERE catalog <> 'def'")
    # ...
    

    I find this more readable too...

提交回复
热议问题