UNIX sort
命令可以像这样对一个非常大的文件进行排序:
sort large_file
Run Code Online (Sandbox Code Playgroud)
排序算法是如何实现的?
为什么它不会导致过多的内存消耗?
我正在尝试编写一个可以执行的结构脚本git commit
; 但是,如果没有提交,git退出状态为1
.部署脚本将其视为不成功,并退出.我确实想要检测实际的失败提交,所以我不能仅仅给织物一个忽略git commit
失败的问题.如何允许忽略空提交失败,以便部署可以继续,但仍然捕获真正提交失败时导致的错误?
def commit():
local("git add -p && git commit")
Run Code Online (Sandbox Code Playgroud) HTML5文档建议将code
元素放在pre
元素中,但我不明白这比使用代码元素和CSS更好还是更具语义.在他们自己的例子中:
<pre><code class="language-pascal">var i: Integer;
begin
i := 1;
end.</code></pre>
Run Code Online (Sandbox Code Playgroud)
也可以写(对浏览器的默认值做一些假设pre
):
<style>
code {
display: block;
white-space: pre;
}
</style>
…
<code class="language-pascal">var i: Integer;
begin
i := 1;
end.</code>
Run Code Online (Sandbox Code Playgroud)
即使pre
是有区分代码块从代码内联串,我不认为它是一个更语义选择,而不是指定块岬的code
一类.
pre
建议使用CSS解决方案是否有特定原因?
我最近发现:invalid
伪类required
在页面加载时立即应用于表单元素.例如,如果您有此代码:
<style>
input:invalid { background-color: pink; color: white; }
input:valid { background-color: white; color: black; }
</style>
…
<input name="foo" required />
Run Code Online (Sandbox Code Playgroud)
然后你的页面将加载一个空的粉红色输入元素.对HTML5内置验证非常好,但我认为大多数用户都不希望表单在有机会输入任何值之前进行验证.有没有办法延迟伪类的应用,直到影响该元素的第一个事件(表单提交,模糊,更改,任何适当的)?没有JavaScript可以做到这一点吗?
最近披露了Bash如何解释环境变量的漏洞CVE-2014-6271.该漏洞依赖于Bash将一些环境变量声明解析为函数定义,但随后继续按照定义执行代码:
$ x='() { echo i do nothing; }; echo vulnerable' bash -c ':'
vulnerable
Run Code Online (Sandbox Code Playgroud)
但我不明白.我在Bash手册中找不到任何关于将环境变量解释为函数的内容(除了继承函数,这是不同的).实际上,正确命名的函数定义只被视为一个值:
$ x='y() { :; }' bash -c 'echo $x'
y() { :; }
Run Code Online (Sandbox Code Playgroud)
但腐败的人什么都不打印:
$ x='() { :; }' bash -c 'echo $x'
$ # Nothing but newline
Run Code Online (Sandbox Code Playgroud)
损坏的函数是未命名的,因此我不能只调用它.这个漏洞是一个纯粹的实现错误,还是这里有一个预期的功能,我看不到?
Per Barmar的评论,我假设函数的名称是参数名称:
$ n='() { echo wat; }' bash -c 'n'
wat
Run Code Online (Sandbox Code Playgroud)
我之前发誓我可以发誓,但我想我没有努力.它现在可以重复了.这是一个更多的测试:
$ env n='() { echo wat; }; echo vuln' bash -c 'n'
vuln …
Run Code Online (Sandbox Code Playgroud) security bash function environment-variables shellshock-bash-bug
当n很小时,Firefox 9.0.1通过使用Ω(n)循环方法显示我的Ω(log n)数字填充算法让我感到惊讶.在我见过的每个其他浏览器中,循环速度较慢,即使是n的小值.我知道所有浏览器都在努力优化JS,但是由于所有其他浏览器都显示循环速度较慢,因此对Firefox 9中的行为有什么解释吗?
// ?(log n)
function padNumberMath(number, length) {
var N = Math.pow(10, length);
return number < N ? ("" + (N + number)).slice(1) : "" + number
}
// ?(n):
function padNumberLoop(number, length) {
var my_string = '' + number;
while (my_string.length < length) {
my_string = '0' + my_string;
}
return my_string;
}
Run Code Online (Sandbox Code Playgroud)
更新:我不认为这与原始问题有关,但我刚刚发现IE 9在从32位模式切换到64位模式时会切换行为.在32位模式下,Math方法获胜.在64位模式下,Loop方法获胜.我想我应该指出这一点.
更新2: MAK在下面的评论中抓住了我.数学方法不是Ω(1),它可能更像Ω(log n).
我对这些jsperf结果感到好奇.它们似乎证明直接函数调用比用.call
或调用的相同函数快得多.apply
.(我.call
和.apply
他之间的区别更让我感到惊讶.)你能解释一下这些结果吗?
更新:这是一个jsperf,有人离开,测试.apply没有第二个数组实例化.
好的:我编辑了我的问题:我听说某处PHP语言是用C语言编写的.
那么,例如发生在你运行PHP中的功能,如date("Ymd");
或file_get_contents("file.txt");
?
它是否将该代码转换为C并请求服务器,还是php执行此操作?
如果它确实翻译它并请求,这意味着它基本上是C?
我有两个生成DOM元素的函数.它们都试图创建相同的容器元素.(我不希望强制执行这些函数的特定运行顺序,或者将它们紧密地耦合到创建此元素的副作用).我一直在尝试发现一个方法,如果它存在就会获得一个元素,或者如果它不存在则创建它的单个实例,并返回包含该元素的jQuery对象或所有匹配的元素(如果它们已经存在).
我没有发现这在搜索jQuery文档时存在,但我想我会在这里询问是否有其他人遇到类似的问题并提出建议.
所以我试图在txt文件的每一行打印第一个单词.单词用一个空格分隔.
cut -c 1 txt file
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码,但它只打印每行的第一个字符.谢谢