有没有人知道在bash测试中执行多个语句的方法?所以,如果我使用:
[[ $Var = 1 ]] && echo "yes-1" || echo "no-1"
Run Code Online (Sandbox Code Playgroud)
然后设置Var=1输出是:yes-1
如果我设置Var=2然后输出是:no-1
这项工作正如我所料.但是,如果我尝试添加另一个语句来执行混合,它不起作用:
[[ $Var = 1 ]] && echo "yes-1";echo "yes-2" || echo "no-1";echo "no-2"
Run Code Online (Sandbox Code Playgroud)
当bash看到命令结束时,这是有道理的; 但是......这不是我想要的.
我已经尝试过分组和演绎和功能,并且已经失败并取得了成功,但我真的只想做的就是将这项工作放在一条线上.有人有主意吗?
我有一段有效的代码,我想问一下究竟发生了什么?
Class<?> normalFormClass = null;
Run Code Online (Sandbox Code Playgroud)
- -添加 - -
通配符" <?>"是令我困惑的部分.为什么要使用它而不是使用它(泛型)?
我通常键入我的地图声明,但是正在做一些maint并找到一个没有输入.这让我想到了(哦不!).Map声明的默认输入是什么.考虑以下:
Map map = new HashMap();
map.put("one", "1st");
map.put("two", new Integer(2));
map.put("three", "3rd");
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + " -> " + entry.getValue());
}
Run Code Online (Sandbox Code Playgroud)
Map.Entry上的类型不兼容时出现此错误.所以,如果我输入声明:
Map<Object, Object> map = new HashMap();
Run Code Online (Sandbox Code Playgroud)
一切顺利.那么在声明中设置的默认类型是什么?还是我错过了别的什么?
需要将JavaDB(derby)db文件的数据库和日志文件移动到部署目录中.数据库正在应用程序启动目录中工作,因为JavaDB创建了一个具有数据库名称的文件夹(在我的例子中是mydb),但我想将该目录移动到名为data/creating data/mydb的子目录中.我可以使用connect调用执行此操作:
DriverManager.getConnection("jdbc:derby:data/mydb;create=false");
Run Code Online (Sandbox Code Playgroud)
这很有效.但我想以编程方式明确设置值
derby.system.home = data/
derby.stream.error.file = log/derby.log
所以我可以这样做:
DriverManager.getConnection("jdbc:derby:mydb;create=false");
Run Code Online (Sandbox Code Playgroud)
并且所有dbs都在该数据/目录中.derby日志文件将在logs /中!我似乎无法弄清楚这一点.有人帮吗?有没有办法以编程方式设置这些属性(因为它是嵌入的)?
如果我有整数123,我想将数字分成数组[1,2,3]这样做的最佳方法是什么?我已经搞砸了很多,我有以下工作:
var number = 123
var digits = Array(String(number)).map{Int(strtoul((String($0)),nil,16))}
Run Code Online (Sandbox Code Playgroud)
我看着它,觉得可能有更好/更简单的方法.如果没有,那么它可能会出现在网络搜索上.任何替代想法?
一直在寻找有关 bash 正则表达式的一些更高级的正则表达式信息,但没有找到太多相关信息。
这是一个简单的字符串的概念:
myString="DO-BATCH BATCH-DO"
if [[ $myString =~ ([[:alpha:]]*)-([[:alpha:]]*) ]]; then
echo ${BASH_REMATCH[1]} #first perens
echo ${BASH_REMATCH[2]} #second perens
echo ${BASH_REMATCH[0]} #full match
fi
outputs:
BATCH
DO
DO-BATCH
Run Code Online (Sandbox Code Playgroud)
很好,它完成了第一场比赛(BATCH-DO),但是我如何拉第二场比赛(DO-BATCH)?我只是在这里画一个空白,找不到关于 bash 正则表达式的太多信息。
看一些代码清理,我想知道处理这个问题的最佳方法:
有一个类有一些私有变量,如:
myBool1, myBool2, myBool3
myInt1, myInt2, myInt3
myString1, myString2, myString3
Run Code Online (Sandbox Code Playgroud)
执行返回值通用的getter函数的最佳方法是什么?所以,如果我用以下内容调用getter:
myNewBool=<blah>.get("myBool1")
myNewString=<blah>.get("myString2")
myNewInt=<blah>.get("myInt3")
Run Code Online (Sandbox Code Playgroud)
有人有什么建议吗?
我有一堆变量
myvar1='say1'
myvar2='say2'
myvar3='say3'
myvar4='say4'
myvar4='say5'
Run Code Online (Sandbox Code Playgroud)
要打印它们,我使用for循环
for i in (range 1,6):
print('{}-{}'.format(i,vars()['myvar'+str(i)]))
Run Code Online (Sandbox Code Playgroud)
这会产生
1-say1
2-say2
3-say3
4-say4
5-say5
Run Code Online (Sandbox Code Playgroud)
我的问题很简单,这是最好的方法(我的意思是var()[]部分).我倾向于使用这种东西(不只是用于打印变量值...)而且我认为它看起来很时髦.我一直在寻找其他的例子,我真的没有找到任何.那么,有更好的方法吗?
所以最终我想知道从变量中的变量名获取值的最佳方法是什么?