作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
DBNAME="mydb" > > mysql -u$USERNAME -6ren">
我有表,我需要从 shell 脚本访问它们并执行以下操作。
> USERNAME="usr" PASSWORD="pwd"
> DBNAME="mydb"
>
> mysql -u$USERNAME -p$PASSWORD $DBNAME<<EOF
> selectfield1,field2,field3,field4 from table;
> EOF
给我记录。但是我需要用普通的 linux 命令处理每个字段-
例如;
> mysql -u$USERNAME -p$PASSWORD $DBNAME<<EOF
> select field1,field2,field3,field4 from table;
> EOF
> scp field1@field2: field3@field4:/tmp && rm -rf field2
类似的东西 - 基本的东西是使用数据库记录在本地机器上调用 linux 命令。
最佳答案
一种方法是使用这个结构(试试看,语法有点奇怪):
cat << EOF | while read a b c ; do echo "a:$a b:$b c:$c" ; done
one two three
EOF
[编辑:显然用您实际的 sql 内容替换 cat
和 one two three
]
您需要确保 mysql
不打印结果以外的任何内容(无 Logo /版权声明/版本信息标题等...)-我相信有命令行开关那个。
如果返回的数据中有空格,或者如果数据由空格以外的其他内容分隔,您也会遇到问题。对于那些,您通常可以将 $IFS
设置为您的列中永远不会发生的事情(可能是 |
),并使您的查询输出两个字段之间的字符。
关于mysql - 如何在shell中使用mysql字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291030/
我是一名优秀的程序员,十分优秀!