有人能告诉我是否应该在shell脚本中包含变量的引号?
例如,以下是正确的:
xdg-open $URL
[ $? -eq 2 ]
Run Code Online (Sandbox Code Playgroud)
要么
xdg-open "$URL"
[ "$?" -eq "2" ]
Run Code Online (Sandbox Code Playgroud)
如果是这样,为什么?
我无法宣布枚举.我正在尝试创建的是"DownloadType"的枚举,其中有3种下载类型(AUDIO,VIDEO,AUDIO_AND_VIDEO).
我已经实现了如下代码:
private enum DownloadType {
AUDIO(0), VIDEO(1), AUDIO_AND_VIDEO(2);
private final int value;
private DownloadType(int value) {
this.value = value;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我然后像这样使用它,这工作正常:
DownloadType.AUDIO_AND_VIDEO.value;
Run Code Online (Sandbox Code Playgroud)
但是,我希望它能让我不必要求"价值".我可能会弄错,但这是几个类在Java中工作的方式,比如Font,例如设置字体样式,你使用:
Font.PLAIN
Run Code Online (Sandbox Code Playgroud)
哪个返回一个int值,我们不使用:
Font.PLAIN.value
Run Code Online (Sandbox Code Playgroud) 我总是选择"清理"我的项目,然后将其存档到我的XCode项目中,但我实际上并不知道它的作用.
我搜索过互联网,也找不到答案.
如果有人知道你能在这里发布吗?
感谢大家
我想在用户滚动到页面底部时实现内容加载.
我遇到了问题.它适用于桌面浏览器,但不适用于移动设备.我已经实现了一个脏修复程序,使其在iPhone上运行,但不是最佳,因为它不适用于其他大小的移动设备.
我的网站是www.cristianrgreco.com,向下滚动以查看效果
问题是添加滚动和高度不等于移动设备的高度,而它们在桌面浏览器上.
有没有办法检测移动浏览器?
提前致谢.
以下是当前使用的代码:
$(document).ready(function () {
$(".main").hide().filter(":lt(3)").show();
if ($(document).height() == $(window).height()) {
// Populate screen with content
}
else if (navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i)) {
window.onscroll = function () {
if ($(document).height() - $(window).scrollTop() <= 1278) {
// At the moment only works on iPhone
}
}
}
else {
$(window).scroll(function () {
if ($(window).scrollTop() + $(window).height() >= $(document).height()) {
// Works perfect for desktop browsers
}
})
}
})
Run Code Online (Sandbox Code Playgroud) 可能重复:
在jar文件中执行shell脚本.如何提取?
我有一个shell脚本打包到'engine'包中的JAR文件中.
在我的程序中,我使用Process和ProcessBuilder运行shell命令.一切正常.
如果我在计算机上指定shell脚本的路径,那么程序运行正常.但是,如果我将shell脚本打包到我的JAR中并像这样访问它:
scriptLocation = this.getClass().getResource("/engine/shell-script.sh").toString();
Run Code Online (Sandbox Code Playgroud)
并运行该程序,然后我收到以下错误:
java.io.IOException: Cannot run program "file:/Users/USERNAME/Desktop/Application-Name.jar!/engine/shell-script.sh": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:431)
at java.lang.Runtime.exec(Runtime.java:328)
at engine.Download$1.run(Download.java:39)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
at java.lang.ProcessImpl.start(ProcessImpl.java:91)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
... 5 more
Run Code Online (Sandbox Code Playgroud)
我开始认为这不可能完成,我非常想提供这个shell脚本作为应用程序的一部分,它可以完成吗?
在此先感谢大家.
========更新==========
我最终解决了这个问题.Shell无法在JAR包中执行脚本,它不是Java,而是shell.我通过执行以下操作来解决此问题:
Java有一个createTempFile()方法(带有终止应用程序后删除文件的选项),调用它,并在要访问此临时文件的JAR包中写入文件.然后,您可以在本地文件系统上安装shell脚本,并且能够执行该脚本.
我在Xcode for Mac中创建了一个简单的应用程序,它可以构建和编译.
如何为首选项创建菜单?有简单的方法还是我必须创建一个新的界面?然后,我如何获取并将值放入这些首选项中?
我确实找到了一个教程,但是它适用于iOS,而且我可以看到,如果您正在为Mac开发,则"设置包"不可用.
编辑:以下链接是完美的:https://developer.apple.com/cocoa/cocoabindings.html
在IB中,可以通过选中"调整大小"复选框来轻松完成.我的问题是我希望我的主要NSWindow不能调整大小,直到点击一个按钮,然后我希望它可以调整大小.
我在互联网上搜索但找不到任何东西?窗口不能调整大小或不能以编程方式调整大小吗?
在此先感谢大家!
我有一个a
包含50,000多个对象的数组,我有一个管道,它接受这个数组a
并将其转换为一些输出,然后显示在视图中.
管道是纯粹的意思,只有当数组的引用a
发生更改时才会重新评估.
我有一个方法modifyArray
,可以从数组中添加/删除一些元素a
.完成后,我希望重新评估管道,以便重新呈现视图.
由于Angular强制执行不变性的方式,我对管道进行重新评估的唯一选择是该方法modifyArray
返回a
应用了更改的数组副本,以便Angular可以检测到引用已更改并触发管道,像这样:
modifyArray(a: T[]): T[] {
a.push(b);
a.slice(c);
return [...a];
}
Run Code Online (Sandbox Code Playgroud)
但是,对于具有50,000+个元素的此类阵列,在制作阵列副本时会出现性能下降.
我原本希望在调用此方法后显式触发更改检测,例如通过调用ApplicationRef.tick()
or ChangeDetectorRef.detectChanges()
,将允许Angular确定数组已被修改,但事实并非如此:
this.a = modifyArray(a);
this.applicationRef.tick();
Run Code Online (Sandbox Code Playgroud)
由于数据集太大,因此无法复制数组.使管道不纯也不是一种选择,因为管道应用于输入的转换是昂贵的.
有没有人对如何实现这一点有任何想法?
我知道替换字符串的字符串,但只有在我确切知道要删除的内容时才有效.
如果我有如下字符串:
"HI-有此结果是-A-试验&特征= HI-有"
如何删除"&feature"以及之后的所有内容?
任何帮助将不胜感激.提前致谢!
编辑:如果绝对有必要使用REGEX,有人可以告诉我如何使用它吗?我知道这是10.7起,但我很好.更好的是,字符串修剪或使用NSScanner的一个例子?
再次感谢大家.
编辑:下面发布的解决方案是正确的,但导致我崩溃.这就是我解决问题的方法:
NSString *newString = [[oldString componentsSeparatedByString: @"&feature="] objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud) 我有一个简单的Python Flask应用程序,它由Apache通过mod_wsgi提供.
我的应用程序的一部分完全在我的localhost上工作,但不能通过mod_wsgi工作是访问自定义请求标头.
当我请求某个网页时,我传给它一个名为的标题auth_user
.在我的本地,我能够访问此标题为:request.headers["auth_user"]
,它的伟大工程.但是,当通过Apache和mod_wsgi提供时,此自定义标头不存在!打印全部request.headers
显示标准Content-Type
,Cache-Control
标题已发送,但不是auth_user
我已发送到本地主机的标题没有问题.
Tcpdump显示服务器is
接收标头,但它在我的服务器中不可用request.headers
.
有没有人知道为什么这个标题在应用程序中不可用?