我试图检查环境变量的值,并根据值做某些事情,只要变量设置它就可以正常工作.当它不是我得到一大堆错误时(因为BASH试图将我指定的字符串与未定义的变量进行比较,我猜)
我尝试实施额外检查以防止它发生但没有运气.我正在使用的代码块是:
#!/bin/bash
if [ -n $TESTVAR ]
then
if [ $TESTVAR == "x" ]
then
echo "foo"
exit
elif [ $TESTVAR == "y" ]
then
echo "bar"
exit
else
echo "baz"
exit
fi
else
echo -e "TESTVAR not set\n"
fi
Run Code Online (Sandbox Code Playgroud)
这是输出:
$ export TESTVAR=x
$ ./testenv.sh
foo
$ export TESTVAR=y
$ ./testenv.sh
bar
$ export TESTVAR=q
$ ./testenv.sh
baz
$ unset TESTVAR
$ ./testenv.sh
./testenv.sh: line 5: [: ==: unary operator expected
./testenv.sh: line 9: [: ==: unary operator …Run Code Online (Sandbox Code Playgroud) 我想得到一个用户在FlowDocument中点击的单词.
我目前正在为文档中的每个Run添加一个事件处理程序,并在单击的Run中迭代TextPointers,在每个Run上调用GetCharacterRect()并检查矩形是否包含该点.
但是,当在长时间运行结束时发生咔嗒声时,这需要> 10秒.
有没有更有效的方法?
如何更改数字的符号?
abs();当输入为正时,不会给我一个否定的,对吗?我需要相反的标志.
给定一系列点,我怎样才能计算出距离5个像素的那条线的矢量?例如:鉴于:
\
\
\
Run Code Online (Sandbox Code Playgroud)
我怎么能找到矢量
\ \
\ \
\ \
Run Code Online (Sandbox Code Playgroud)
右边的那些.
我试图找出像Flash这样的程序如何制作厚实的轮廓.
谢谢
我正在运行两个cron工作:
这个执行没有问题:
curl -sS http://example.com/cronjob.php?days=1
Run Code Online (Sandbox Code Playgroud)
但这根本不会发生:
curl -sS http://example.com/cronjob.php?days=1&month=1
Run Code Online (Sandbox Code Playgroud)
这是因为&符号(&)吗?如果是,如何传递多个参数?
使用argv不是一种选择.
我想制作一个触发器,如果未来的生日(其中一列),将阻止插入.我有这个:
CREATE TRIGGER foo
BEFORE INSERT ON table
FOR EACH ROW
BEGIN
IF NEW.birthdate > CURRENT_DATE()
THEN
//How do I prevent the insert right here???
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
如何取消if语句中的插入?
当我传递File file给一个方法时,我试图获得它的完整路径,就像file.getAbsolutePath();我总是得到相同的结果,无论我使用绝对路径或规范路径哪一个PATH_TO_MY_WORKSPACE/projectName/filename并不存在,我怎样才能获得文件的确切位置?
谢谢
细节:
这是一些代码和这个解决方案(它很糟糕,但它的工作):
private static void doSomethingToDirectory(File factDir) throws IOException {
File[] dirContents = factDir.listFiles();
if(factDir.isDirectory() && dirContents.length > 0){
for (int i = 0; i < dirContents.length; i++) {
for (String str : dirContents[i].list()) {
if(str.equals(TEMP_COMPARE_FILE)){
process(new File(dirContents[i].getAbsolutePath() + "\\" + str));
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在循环使用factDir所在的目录src/main,我正在寻找仅仅是TEMP_COMPARE_FILE值的BeProcessed.txt文件,我将它们发送到读取文件并处理它的进程方法.
如果有人能够更好地解决问题我会很高兴
我有2张桌子.简化:
表1,用户:
userId int,userName nvarchar(50)
表2,消息:
msgId int,msgFrom int,msgTo int ...
msg1和msg2都包含userId.现在我想获取所有消息,但我想要用户名而不是msgFrom.我知道该怎么做:
select tabMessages.*, tabUsers.userName as Sender
from tabMessages
inner join tabUsers on msgFrom=userId
where msgId = @someParameter;
Run Code Online (Sandbox Code Playgroud)
一切都很好,花花公子.获取用户名而不是msgTo是一样的.现在的问题是,如何在同一个呼叫中获取两个字段?我想得到这张桌子
msgId,msgFrom,msgTo,发件人,收件人.我试过:
select tabMessages.*, tabUsers.userName as Sender,
tabUsers.userName as Recipient
from tabMessages
inner join tabUsers on msgFrom=userId and msgTo=userId
where msgId = @someParameter;
Run Code Online (Sandbox Code Playgroud)
但这不起作用.顺便说一下,我正在使用Ms sql2000.
我想要复杂算术的好运算符,以使我的代码更具可读性.Ocaml有一个Complex模块,所以我只想添加调用这些函数的运算符.
对我来说最直观的方法是通过将"&"附加到运算符符号,从所有常用运算符创建一个新的复杂运算符.因此+&和*&将是复杂的加法和乘法.我也想〜和复杂的共轭.
如果我要使用这些运算符,我希望它们与普通算术关联的方式相关联.基于以下会话,它们会按照我想要的方式自动运行,但我想了解原因,以便在引入更多运算符时不会出现可怕的错误.
我目前的猜测是,它们的优先级是通过根据与正常算术优先级一致的排序对操作符号进行词法排序来完成的.但我无法证实这一点.
第一节:
# open Complex;;
# let (+&) a b = add a b;;
val ( +& ) : Complex.t -> Complex.t -> Complex.t = <fun>
# let ( *&) a b = mul a b;;
val ( *& ) : Complex.t -> Complex.t -> Complex.t = <fun>
# one +& zero *& one +& zero *& one;;
- : Complex.t = {re = 1.; im = 0.}
# zero +& one *& zero +& one *& …Run Code Online (Sandbox Code Playgroud)