小编X.M*_*.M.的帖子

mysql命令行返回执行时间?

我正在使用mysql命令在Linux主机上工作.我有一个运行批处理mysql命令的脚本(如mysql -e "select..."),我希望总结每个命令的执行时间.

有没有办法从命令行获取mysql exec时间?

例如,在mysql交互模式下,执行结果带有时间,如下所示:

mysql> select count(*) from trialtable;
+----------+
| count(*) |
+----------+
|     4000 |
+----------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

我可以在命令行中获得相同的配置文件吗?

谢谢

mysql profiling

15
推荐指数
2
解决办法
1万
查看次数

Linux:如何查看生活过程是否设置了信号处理程序?

有一个快乐的过程,我想知道它是否设置了一些信号处理程序.我记得我曾经在某处读过一些关于此的内容,但却找不到这样的信息.可能吗?

谢谢

linux signals

13
推荐指数
2
解决办法
7745
查看次数

Java:集合中的接口未被识别为参数

设计简单,代码简单但不编译:

public interface Insertable {
    public String getInsertStmt(String table);
}

public class ClassCanBeInserted implements Insertable { 
    public String getInsertStmt(String table) {}
}

public class SomeClass { 
    public static void main() { 
        List<ClassCanBeInserted> list = new ArrayList<ClassCanBeInserted>();
        SomeMethod(list);
    }
    private static void SomeMethod(List<Insertable> list) {}
}
Run Code Online (Sandbox Code Playgroud)

并且对SomeMethod()的调用将无法编译.英语很差,但代码应该解释.有人可以找出什么是错的,以及如何获得一个设计的建议,可以在这种方法中使用接口实现的类列表?

再说一次,英国人很穷,所以可能表达不好.让我知道你的问题.谢谢!

给出的错误消息:类ClassCanBeInserted中的方法SomeMethod(List)不适用于参数(List)

java generics inheritance interface

7
推荐指数
1
解决办法
1688
查看次数

bash使用陷阱SIGCHLD重启子进程?

我已经看过监视程序,无论是在脚本中,使用'ps'或'服务状态(在Linux上)'定期检查进程状态,还是在C/C++中分析并等待进程...

我想知道是否有可能使用带有陷阱的bash并在收到SIGCLD时重新启动子进程?

我已经在RedHat Linux上测试了一个带有以下想法的基本套件(当然它没有用......)

#!/bin/bash
set -o monitor # can someone explain this? discussion on Internet say this is needed
trap startProcess SIGCHLD
startProcess() { 
  /path/to/another/bash/script.sh & # the one to restart
  while [ 1 ]
  do
    sleep 60
  done
}
startProcess
Run Code Online (Sandbox Code Playgroud)

什么bash脚本启动只是睡了几秒钟然后退出.

观察到几个问题:

  • 当shell在前台启动时,SIGCHLD只会被处理一次.陷阱复位信号处理如signal()?
  • 脚本及其子代似乎不受SIGINT的影响,这意味着它们不能被^ C阻止
  • 由于无法关闭,我关闭了终端.脚本似乎是HUP,许多僵尸孩子离开了.
  • 在后台运行时,脚本导致终端死机

......无论如何,这根本不起作用.我不得不说我对这个话题知之甚少.有人可以建议或提供一些有用的例子吗?是否有这样的脚本?

那么在bash中使用等待怎么样?

谢谢

bash child-process sigchld bash-trap

7
推荐指数
1
解决办法
6541
查看次数

tcl exec先读stdout然后stderr?

我发现tcl exec命令首先从stdout返回字符串然后是stderr.例如,我的以下"测试脚本"按此顺序生成消息:

puts "test started"
puts stderr "some non-fatal error goes to stderr"
puts "test passed"
Run Code Online (Sandbox Code Playgroud)

然后我像这样执行脚本:

set ret [ catch { exec sh -c $cmd } msg ]
Run Code Online (Sandbox Code Playgroud)

而我从$ msg得到的是:

test started
test passed
some non-fatal error goes to stderr
Run Code Online (Sandbox Code Playgroud)

这真的让我很难得到正确的结果.

有人可以知道是否可以按顺序从stdout和stderr获取消息,并且:

1)请不要像这样重定向,这样可以确保它们全部按顺序排列:

set ret [ catch {exec $cmd >&log.txt} msg ]
Run Code Online (Sandbox Code Playgroud)

2)我必须在我的 tcl脚本中调用那个 tcl脚本,抱歉

3)我也不能直接获取.tcl测试脚本,因为在两者之间调用了其他脚本,如果我的tcl脚本只是源于那个 tcl脚本它就不会工作.

我使用的是tclsh 8.3

不确定这是否要求太多.我希望有人可以解决这个问题.谢谢.

stdout tcl exec stderr

4
推荐指数
1
解决办法
2772
查看次数

从一个awk命令设置多个变量?

这是一个非常常见的脚本:

#!/bin/bash

teststr="col1 col2"

var1=`echo ${teststr} | awk '{print $1}'`
var2=`echo ${teststr} | awk '{print $2}'`

echo var1=${var1}
echo var2=${var2}
Run Code Online (Sandbox Code Playgroud)

但是我不喜欢这个,特别是当有更多的字段需要解析时.我想应该有更好的方法:

(var1,var2)=`echo $ {teststr} | awk'{print $ 1 $ 2}'(在我的想象中)

是这样吗?感谢您帮助提高效率并节省一些CPU电量.

bash awk

3
推荐指数
1
解决办法
1万
查看次数

tcl:捕获"exec diff"的输出,返回非零值

我知道在执行可能返回非零的命令时使用catch很常见......但是在这种情况下如何获得输出?

具体来说,我希望做一些像"catch {exec diff fileA fileB} ret"这样的事情.文件是不同的,ret值是1.我实际需要的是diff的输出,详细的差异.但我相信"捕捉{exec ...}错误"的做法并没有提供它,对吗?

有人可以建议这个任务吗?是否有tcl-builtin命令来做文件差异?(我认为可以将输出重定向到文件,然后读取文件......还有其他选择吗?)

谢谢!XM

diff tcl try-catch exec

2
推荐指数
1
解决办法
5719
查看次数

如何在Java中获得32位唯一编号?

我需要在Java中生成一个唯一的32位数.我需要将数字作为Java int返回,这是接口所需的.你能否就此分享一些想法?

该号码将用作MySQL PK,并且多个线程可以同时生成自己的唯一ID.(抱歉决定不使用MySQL增量ID)

我尝试过UUID类,但它生成的数据似乎比我可以使用的更多.

我发现了这个,但不确定它是否有效:

    // seems no way to get int
    UUID id = UUID.randomUUID();
    System.out.println(id);

    // not working either?
    java.rmi.server.UID uid = new java.rmi.server.UID();
    System.out.println(uid.toString());

    // the one i am using
    SecureRandom prng = SecureRandom.getInstance("SHA1PRNG");
    prng.setSeed(System.currentTimeMillis());
    int ret = prng.nextInt();
    System.out.println(ret);
Run Code Online (Sandbox Code Playgroud)

java uuid guid uid

2
推荐指数
1
解决办法
9214
查看次数

tcl"switch -glob"与变量不匹配

我在Solaris和Linux上都遇到过这个问题,tcl版本为8.3/8.4

请看以下代码:

#!/usr/bin/tclsh

set pattern "this is * and *"
set str "this is tcl and c++"

switch -glob $str {

  $pattern {
    puts "matched pattern"
  }
  "this is * and *" {
    puts "matched plain text"
  }
  default {
    puts "matched none"
  }

}
Run Code Online (Sandbox Code Playgroud)

结果是"匹配纯文本".我虽然应该匹配$ pattern ...这是不正确的switch用法,或者我没有为-glob选项提供正确的模式?

请有人给出一些想法,如果你能告诉如何修改代码以使其与switch和variable一起运行,那就更好了.

谢谢!XM

glob tcl switch-statement

1
推荐指数
1
解决办法
2054
查看次数