小编Fra*_*rth的帖子

在bash shell脚本中传播所有参数

我正在编写一个调用另一个脚本的非常简单的脚本,我需要将参数从当前脚本传播到我正在执行的脚本.

例如,我的脚本名称是foo.sh和调用bar.sh

foo.sh:

bar $1 $2 $3 $4
Run Code Online (Sandbox Code Playgroud)

如何在不明确指定每个参数的情况下执行此操作?

bash command-line-arguments

769
推荐指数
10
解决办法
39万
查看次数

302
推荐指数
9
解决办法
32万
查看次数

Python内存泄漏

我有一个长时间运行的脚本,如果让它运行得足够长,将消耗我系统上的所有内存.

没有详细介绍脚本,我有两个问题:

  1. 是否有任何"最佳实践"可以帮助防止泄漏发生?
  2. 有哪些技术可以调试Python中的内存泄漏?

python debugging memory-leaks memory-management

164
推荐指数
7
解决办法
13万
查看次数

键盘中断python的多处理池

如何使用python的多处理池处理KeyboardInterrupt事件?这是一个简单的例子:

from multiprocessing import Pool
from time import sleep
from sys import exit

def slowly_square(i):
    sleep(1)
    return i*i

def go():
    pool = Pool(8)
    try:
        results = pool.map(slowly_square, range(40))
    except KeyboardInterrupt:
        # **** THIS PART NEVER EXECUTES. ****
        pool.terminate()
        print "You cancelled the program!"
        sys.exit(1)
    print "\nFinally, here are the results: ", results

if __name__ == "__main__":
    go()
Run Code Online (Sandbox Code Playgroud)

当运行上面的代码时,KeyboardInterrupt当我按下时会引发上升^C,但是该过程只是挂起,我必须在外部杀死它.

我希望能够随时按下^C并使所有进程正常退出.

python pool multiprocessing keyboardinterrupt

127
推荐指数
8
解决办法
7万
查看次数

在.bashrc中包含其他文件

我有一些我想在.bashrc中执行的东西,我宁愿存在于系统上的另一个文件中.如何将此文件包含在.bashrc中?

linux bash shell command-line

65
推荐指数
3
解决办法
4万
查看次数

如何处理Git"无法读取"错误

我在我的git存储库中收到此错误:

22:09:15 $ git status
# On branch master
error: Could not read 8124cc15c63be92d534e4cdfa33c38d54deee122
error: unable to read tree object HEAD
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

谷歌搜索error: unable to read tree object HEAD不会带来太多帮助,这个错误似乎非常罕见.我不知道如何处理它.这可能是硬盘故障吗?

编辑:输出git fsck如下:

broken link from  commit 607328dc80e4901a55b95c683d4fbf43e6df28bf
              to    tree 8124cc15c63be92d534e4cdfa33c38d54deee122
missing tree 8124cc15c63be92d534e4cdfa33c38d54deee122
dangling tree 56b5d4a5e429d251582ec927bca7ef1225510c41
dangling tree 0259d2d38b18b6136bb6070fb41faf3624453cc6
Run Code Online (Sandbox Code Playgroud)

git

45
推荐指数
4
解决办法
5万
查看次数

switch语句的运行时复杂性是多少?

假设您有n个案例,我想知道switch语句的最坏情况运行时复杂性是什么.

我一直认为它是O(n).不过,我不知道编译器是否能做任何聪明的事情.如果答案是特定于实现的,我想知道以下语言:

  • Java的
  • C/C++
  • C#
  • PHP
  • 使用Javascript

algorithm big-o programming-languages switch-statement

40
推荐指数
5
解决办法
2万
查看次数

django的竞争条件

以下是具有潜在竞争条件的django视图的简单示例:

# myapp/views.py
from django.contrib.auth.models import User
from my_libs import calculate_points

def add_points(request):
    user = request.user
    user.points += calculate_points(user)
    user.save()
Run Code Online (Sandbox Code Playgroud)

竞争条件应该是相当明显的:用户可以两次发出此请求,并且应用程序可能user = request.user同时执行,导致其中一个请求覆盖另一个请求.

假设函数calculate_points相对复杂,并且基于各种奇怪的东西进行计算,这些东西不能放在一个单独的update并且很难放入存储过程中.

所以这是我的问题:django可以使用哪种锁定机制来处理类似的情况?

python database django locking race-condition

35
推荐指数
4
解决办法
1万
查看次数

Haskell函数组成

我正在阅读关于Haskell的教程.他们将功能组成定义如下:

(.)                     :: (b->c) -> (a->b) -> (a->c)
f . g                   = \ x -> f (g x)
Run Code Online (Sandbox Code Playgroud)

我没有提供任何例子,我相信这会让我了解这里定义的内容.

有人能提供一个关于如何使用函数组合的简单示例(有解释)吗?

haskell functional-programming function composition

28
推荐指数
6
解决办法
2万
查看次数

如何从.vimrc创建一个文件夹(如果它不存在)?

我不喜欢vim如何使我的文件夹与备份文件混乱,所以我的.vimrc文件中有以下行:

set backupdir=~/.vim_backup
Run Code Online (Sandbox Code Playgroud)

但是,有时这个文件夹不存在,因为我正在复制我的用户文件的新机器.

如何从.vimrc中自动创建此文件夹(如果不存在)?还是有更好的方法来处理这种情况?

vim

28
推荐指数
4
解决办法
1万
查看次数