我正在使用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)
我可以在命令行中获得相同的配置文件吗?
谢谢
有一个快乐的过程,我想知道它是否设置了一些信号处理程序.我记得我曾经在某处读过一些关于此的内容,但却找不到这样的信息.可能吗?
谢谢
设计简单,代码简单但不编译:
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)
我已经看过监视程序,无论是在脚本中,使用'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脚本启动只是睡了几秒钟然后退出.
观察到几个问题:
......无论如何,这根本不起作用.我不得不说我对这个话题知之甚少.有人可以建议或提供一些有用的例子吗?是否有这样的脚本?
那么在bash中使用等待怎么样?
谢谢
我发现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
不确定这是否要求太多.我希望有人可以解决这个问题.谢谢.
这是一个非常常见的脚本:
#!/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电量.
我知道在执行可能返回非零的命令时使用catch很常见......但是在这种情况下如何获得输出?
具体来说,我希望做一些像"catch {exec diff fileA fileB} ret"这样的事情.文件是不同的,ret值是1.我实际需要的是diff的输出,详细的差异.但我相信"捕捉{exec ...}错误"的做法并没有提供它,对吗?
有人可以建议这个任务吗?是否有tcl-builtin命令来做文件差异?(我认为可以将输出重定向到文件,然后读取文件......还有其他选择吗?)
谢谢!XM
我需要在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) 我在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