我已经做了一些事情来破坏OS X(10.5.7)终端中的Bash Shell提示符.
这是我配置的PS1:
PS1='\[\e[1;32m\]\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ '
Run Code Online (Sandbox Code Playgroud)
据我所知,我有正确的颜色命令逃逸.然而,当我在命令历史中向上和向下滚动时,如果历史命令包裹在多行上,我经常会遇到换行问题.
我将提示简化为以下内容:
PS1='\[\e[1m\]\h:\w\$ \[\e[0m\]'
PS2='> '
Run Code Online (Sandbox Code Playgroud)
我仍然看到类似的东西:
localhost:~/Library/Application Support/Firefox/Profiles/knpmxpup.Defau lt/extensions/{1A2D0EC4-75F5-4c91-89C4-3656F6E44B68}$ expocd \{1A2D0EC4-7 5F5-4c91-89C4-3656F6E export PS1="\[ \e[1;32m\]\h\[\e[0m\]: cd Library/Appl ication\ Support/
我也试过\033
而不是\e
.我刚刚将PS2包含在那里以获取信息,我没有从安装默认值中更改它.如果我完全删除颜色代码,那么一切正常,任何想法?
Ubuntu启动/登录声音可能非常响亮,但我确实喜欢它.我写了一个脚本,使用amixer将音量设置为25%.这是我喜欢的水平,但是当我使用电视或耳机时,我必须调高音量.在登录声音播放之前,我似乎无法让脚本运行.我已经尝试了一个cron @reboot,并在/etc/rc3.d/和我的.bash_profile脚本中为脚本添加了一个符号链接.只有第三种方法实际上正确设置了音量,但是在播放登录声音之后.
理想情况下,我希望在我退出当晚或在ubuntu登录屏幕显示之前运行脚本.
以下是设置音量的命令:
`/usr/bin/amixer -c 0 sset Master,0 25% > /dev/null`
Run Code Online (Sandbox Code Playgroud)
其他方法的建议值得赞赏.
我的同事和我正在争论为什么在这个JS提示和技巧列表中给出的随机算法不会产生偏见的结果,就像杰夫阿特伍德描述的天真洗牌一样.
提示中的数组shuffle代码是:
list.sort(function() Math.random() - 0.5);
Run Code Online (Sandbox Code Playgroud)
Jeff的天真洗牌代码是:
for (int i = 0; i < cards.Length; i++)
{
int n = rand.Next(cards.Length);
Swap(ref cards[i], ref cards[n]);
}
Run Code Online (Sandbox Code Playgroud)
我写了这个JS来测试shuffle:
var list = [1,2,3];
var result = {123:0,132:0,321:0,213:0,231:0,312:0};
function shuffle() { return Math.random() - 0.5; }
for (var i=0; i<60000000; i++) {
result[ list.sort(shuffle).join('') ]++;
}
Run Code Online (Sandbox Code Playgroud)
为此我获得了结果(来自Firefox 5),如:
Order Count %Diff True Avg 123 9997461 -0.0002539 132 10003451 0.0003451 213 10001507 0.0001507 231 9997563 -0.0002437 312 9995658 -0.0004342 321 …
我正在使用MongoDB作为代理运行python芹菜,因为它存储了我应用程序的其余数据.(这是芹菜的实验设置,所以我知道我做错了.)我发现芹菜消息集包含2000万个文件,这太荒谬了.所以我删除了超过7天的任何文件,但这仍然留下了超过一百万份文件的消息.他们中的大多数人都有一个队列:celeryev.35159580-6c35-40cd-b75b-66eb8333963d
.该队列用于什么,可以安全删除吗?
我希望在Firefox启动之前和退出之后运行脚本.在Ubuntu中,我通过创建一个先调用我的函数的新快捷方式,然后调用firefox命令,然后调用我的最后一个函数来完成此操作.由于firefox命令阻塞直到应用程序退出,因此在进程结束后立即调用我的最后一个函数.
但是,OS XI不能很好地做到这一点,因为我最终在Dock上有两个图标.一个用于我的脚本变成一个应用程序,另一个用于Firefox应用程序.我宁愿只有一个停靠图标并且不会破坏Firefox更新.
我目前的解决方案是将MacOS/firefox {, - bin}重命名为'real-'前缀,然后将我的shell脚本命名为"firefox-bin".这有效,但我很确定下次firefox尝试更新我自己敬酒.
我已经尝试将bundle的Info.plist文件中的"CFBundleExecutable"属性更改为我的脚本,但这不起作用.
有人可以提供任何其他建议吗?
我正在使用Firefox Addon SDK来构建监视和显示浏览器中HTTP流量的内容.与HTTPFox或Live HTTP Headers类似.我有兴趣确定浏览器中的哪个选项卡(如果有)生成了请求
使用观察者服务我正在监视"http-on-examine-response"事件.我有以下代码来识别生成请求的nsIDomWindow:
const observer = require("observer-service"),
{Ci} = require("chrome");
function getTabFromChannel(channel) {
try {
var noteCB= channel.notificationCallbacks ? channel.notificationCallbacks : channel.loadGroup.notificationCallbacks;
if (!noteCB) { return null; }
var domWin = noteCB.getInterface(Ci.nsIDOMWindow);
return domWin.top;
} catch (e) {
dump(e + "\n");
return null;
}
}
function logHTTPTraffic(sub, data) {
sub.QueryInterface(Ci.nsIHttpChannel);
var ab = getTabFromChannel(sub);
console.log(tab);
}
observer.add("http-on-examine-response", logHTTPTraffic);
Run Code Online (Sandbox Code Playgroud)
主要是从文档中了解如何识别生成请求的浏览器.有些也来自Google PageSpeed Firefox插件.
是否有推荐或首选的方法从nsIDOMWindow对象domWin
转到 …
随着Firefox 57和Greasemonkey 4.0的新更新,该gm_scripts
文件夹似乎不再存储user.js脚本.
现在存储脚本在哪里?
有关将这些脚本保存在git中的任何建议吗?
firefox firefox-addon-webextensions firefox-57+ greasemonkey-4
对于我的Web应用程序,我需要在父窗口关闭时关闭子窗口."关闭"是指浏览器窗口实际上已关闭,而不仅仅是导航到新页面.
我已经看到" 如果父窗口关闭,我如何关闭子窗口? "问题已经存在,但是我的问题是一个扩展.该问题的答案解决了在父级的任何卸载事件上关闭子窗口的问题.然而卸载!=关闭(IMO); 只需单击链接即可触发卸载事件.
由于JS中没有"onclose"事件,我认为最好的方法是在子节点上父节点的卸载事件setTimeout上查看它的父节点是否仍然存在,如果不存在则关闭:
var w = window.open("", "Logger", "height=480,width=640,resizeable,scrollbars=yes");
if (w) {
JSEvents.on(window,'unload',function(){
if (w && !w.closed) {
w.setTimeout(function(){
//IE this==w.opener
if (!w.opener || w.opener.closed) {
w.close();
}
},500);
}
});
}
Run Code Online (Sandbox Code Playgroud)
但是,我相信我已经非常确切地证明,在IE(7)中,您无法在父窗口或子窗口上的卸载事件期间使用setTimeout.在上面的例子this == w.opener
里面有setTimeout匿名函数.此测试从不产生警报:
JSEvents.on(window, 'unload', function(){
window.setTimeout(function(){alert('HERE');},500);
});
Run Code Online (Sandbox Code Playgroud)
alert
没有的直线setTimeout
会产生警报.
是否有一个技巧可以从我可以使用的父项中为子项设置setTimeout?
是否有另一种方法可以检测父母何时关闭我可以使用?
在FF中这样做要容易得多,所以我专注于让它在IE下工作.
我发现网页上的元素经常被固定在我的位置.我想找到一种方法来禁用position: fixed
我访问的任何网站中的CSS规则.
我编写了一个用户脚本(Firefox,Greasemonkey),它扫描文档中的每个节点,并确定它是否已修复计算出的样式位置,然后将其覆盖为静态.
有没有更好的方法来实现我的目标?
这是我写的剧本,我现在把它缩小为div:
Array.forEach(
document.querySelectorAll("div")
,function(el) {
if (window.getComputedStyle(el).position === 'fixed') {
el.style.position = 'static';
}
}
);
Run Code Online (Sandbox Code Playgroud) 我有一个600MB制表符分隔文件,需要仅使用前两列进行排序.这些列按顺序排列的所有行都应保留在现有顺序中.我努力使用sort
并且--key
似乎继续按其他列对行进行排序.
这是未分类文件的示例:
1244072768 7234 Z 1244072768 7234 e 1244072768 7234 b 1244072768 7234 r 1244072768 7234 a 1244072768 7341 C 1244072768 7341 a 1244072768 7234 - 1244072768 7341 r 1244072768 7341 t 1244072768 7341 - 1244072769 4237 W 1244072769 4237 a 1244072769 4237 s 1244072769 4237 h 1244072769 4237 -
结果应该是这样的:
1244072768 7234 Z 1244072768 7234 e 1244072768 7234 b 1244072768 7234 r 1244072768 7234 a 1244072768 7234 - 1244072768 7341 C 1244072768 7341 a 1244072768 …
我正在尝试编写一个单行的Perl脚本,它将配置文件中的一行从"已注释"切换为不返回.到目前为止,我有以下内容:
perl -pi -e 's/^(#?)(\tDefaultServerLayout)/ ... /e' xorg.conf
Run Code Online (Sandbox Code Playgroud)
我试图找出替换(...)部分中的代码.如果没有匹配,我希望替换插入'#',如果匹配则删除它.
伪代码:
if ( $1 == '#' ) then
print $2
else
print "#$2"
Run Code Online (Sandbox Code Playgroud)
我的Perl非常生锈,我不知道如何将它变成s///e
替代品.
我之所以这样做是为了创建一个脚本,它将在两个布局之间更改(切换)我的显示设置.我希望只在一个脚本中完成此操作.
我对替代方法的建议持开放态度,但我想保留一个单线程,我可以将其包含在一个shell脚本中,该脚本在我更改布局时正在做其他我希望发生的事情.
javascript ×4
firefox ×3
sorting ×2
ansi-escape ×1
audio ×1
bash ×1
celery ×1
colors ×1
css ×1
firefox-57+ ×1
firefox-addon-webextensions ×1
greasemonkey ×1
macos ×1
mongodb ×1
perl ×1
prompt ×1
python ×1
regex ×1
shuffle ×1
ubuntu ×1
unix ×1
volume ×1