BASH:一行打印输出
发布时间:2020-12-15 19:29:42 所属栏目:安全 来源:网络整理
导读:我下面有这个简单的脚本将压缩的MySQL转储流程并行传输到Amazon S3 bucket: #!/bin/bashCOMMIT_COUNT=0COMMIT_LIMIT=2for i in $(cat list.txt); do echo "$i " mysqldump -B $i | bzip2 -zc | gof3r put -b s3bucket -k $i.sql.bz2 (( COMMIT_COUNT++ )) i
我下面有这个简单的脚本将压缩的MySQL转储流程并行传输到Amazon S3 bucket:
#!/bin/bash COMMIT_COUNT=0 COMMIT_LIMIT=2 for i in $(cat list.txt); do echo "$i " mysqldump -B $i | bzip2 -zc | gof3r put -b s3bucket -k $i.sql.bz2 & (( COMMIT_COUNT++ )) if [ ${COMMIT_COUNT} -eq ${COMMIT_LIMIT} ]; then COMMIT_COUNT=0 wait fi done if [ ${COMMIT_COUNT} -gt 0 ]; then wait fi 输出如下所示: database1 database2 duration: 2.311823213s duration: 2.317370326s 有没有办法在每个转储一行打印这个? database1 - duration: 2.311823213s database2 - duration: 2.317370326s 在这种情况下,echo -n开关没有帮助。 编辑:Wed May 6 15:17:29 BST 2015 我能够根据公认的答案达到预期成果: echo "$i -" $(mysqldump -B $i| bzip2 -zc | gof3r put -b s3bucket -k $i.sql.bz2 2>&1) & – 但是,在subshel??l中运行的命令不会将退出状态返回给父shell,因为它并行运行,因此我无法验证其成功或失败。
我认为这个命令会做你想要的:
echo "$i -" `(mysqldump -B $i | bzip2 -zc | gof3r put -b s3bucket -k $i.sql.bz2) 2>&1` & 或者,使用$()代替反引号: echo "$i -" $( (mysqldump -B $i| bzip2 -zc | gof3r put -b s3bucket -k $i.sql.bz2) 2>&1 ) & echo命令将等待mysqldump ..结果,然后尝试与$ i一起打印。子shell(…)和错误重定向2& 1确保错误消息进入回显的输出。 $之后的空格(是必需的,因为$((没有空格是不同的特殊操作 – 算术扩展)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Bootstrap 4 alpha(内测版) 发布
- twitter-bootstrap – 使用bootstrap css进行打印
- 如何在fread中处理Coverity错误TAINTED_SCALAR
- 基于Xfire SOAP Header的WebService安全验证教程
- Scala重载了构造函数和超级
- AngularJS – 设置指令模板中定义的模型
- angularjs – 我如何在角服务中使用$on?
- bootstrap-typeahead – 如何更改Bootstrap的typeahead的选
- scala – MDC(映射诊断上下文)登录AKKA
- scala写法----java 对象属性复制到另一个对象中Optional属性
推荐文章
站长推荐
热点阅读