小编pfn*_*sel的帖子

PyLint消息:logging-format-interpolation

对于以下代码:

logger.debug('message: {}'.format('test'))
Run Code Online (Sandbox Code Playgroud)

pylint 产生以下警告:

记录格式插值(W1202):

在日志记录函数中使用%格式并将%参数作为参数传递当日志语句的调用形式为"logging.(format_string.format(format_args ...))"时使用.此类调用应使用%格式,但通过将参数作为参数传递,将插值留给日志记录功能.

我知道我可以关掉这个警告,但我喜欢理解它.我假设使用format()是打印输出语句的首选方法pylint.为什么记录器语句不适用?

python pylint python-3.x

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

命令行Zsh中的注释

我最近在Ubuntu上从Bash切换到了Zsh,我很高兴.但是,有一些我真的很想念,我没有找到如何实现同样的事情.

在Bash中,每当我输入一个长命令并注意到我之前必须运行其他东西时,我只需要将其注释掉,如下所示:

me@home> #mysuperlongcommand with some arguments
me@home> thecommandIhavetorunfirst #and then: then up up
me@home> #mysuperlongcommand with some arguments #I just need to uncomment it!
Run Code Online (Sandbox Code Playgroud)

然而,这种相当复杂的情况并不像以前那样容易解决zsh,因为这样做#mysuperlongcommand会导致:并导致:zsh: command not found: #mysuperlongcommand.

command-line zsh

103
推荐指数
5
解决办法
1万
查看次数

在vim中搜索并替换特定行

我可以用

:5,12s/foo/bar/g
Run Code Online (Sandbox Code Playgroud)

在第5行和第12行之间搜索foo和替换它bar.我怎么能只在第5行和第12行(而不是在它们之间的行中)这样做?

vim

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

为什么非交互式Bash shell中的别名不起作用

我试图在非交互式bash shell中使用别名.我已经定义了我的别名~/.bashrc,我已经设置了变量BASH_ENV=~/startUpFile.startUpFile的内容是source ~/.bashrc.

当我执行alias命令时,我可以看到我的别名被识别.但是,如果我尝试使用定义的别名~/.bashrc,Bash无法识别它.它给了我未知的命令错误.

使用TCSH shell可以很容易地执行此操作,因为~/.cshrc始终会读取文件.

有什么想法我怎么能用Bash shell做到这一点?

bash alias non-interactive

44
推荐指数
3
解决办法
2万
查看次数

显示命令而不执行它们

我经常交互式循环例如我的文件,并希望对所有文件执行特定操作,假设我想重命名所有文件:

for file in $(ls); do mv "$file" "${file}_new"; done
Run Code Online (Sandbox Code Playgroud)

这很好用.但在调用此命令之前,我想看看它实际上做了什么,所以我会在前面添加一个回声

for file in $(ls); do echo mv "$file" "${file}_new"; done
Run Code Online (Sandbox Code Playgroud)

然后它会显示它将调用的所有命令.如果我对他们感到满意,我会删除echo并执行它.

但是,当命令更微妙时可能包括管道或多个命令时,这不再起作用.当然我可以使用,'所以特殊字符不会被解释,但后来我没有参数扩展.我也可以逃避特殊角色,但这会非常繁琐.

我的问题是,最好的方法是什么?我已经阅读了man bash关于该选项的选项-n,该选项执行"读取命令但不执行它们.这可用于检查shell脚本是否存在语法错误.交互式shell会忽略这一点." 这正是我需要的,但我需要它用于交互式shell.注意选项-x或者-v没有帮助,因为它不仅会显示命令,还会调用它,然后它可能已经太晚了.

bash

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

何时使用set -e

set -e前段时间遇到过,我承认我喜欢它.现在,经过一段时间我回来写一些bash脚本.

我的问题是,是否有一些最佳实践何时使用set -e以及何时不使用它(例如小型/大型脚本等)或者我应该使用类似cmd || exit 1跟踪错误的模式?

bash shell

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

列表清单的总和; 返回总和列表

data = [[3,7,2],[1,4,5],[9,8,7]]

假设我想对列表中每个列表的索引的元素求和,比如在矩阵列中添加数字以获得单个列表.我假设数据中的所有列表长度相等.

    print foo(data)

   [[3,7,2],
    [1,4,5],
    [9,8,7]]
    _______
 >>>[13,19,14]
Run Code Online (Sandbox Code Playgroud)

如何迭代列表列表而不会使索引超出范围错误?也许lambda?谢谢!

python sum list matrix

24
推荐指数
3
解决办法
5万
查看次数

vim随机打破语法高亮

在具有相当大的ping时间的远程服务器上工作时,语法突然突然显示并且看似随机中断.当发生这种情况时,它看起来像这样:

在此输入图像描述

语法高亮是很好的直到第24行,之后一切都是灰色的.我可以通过随机滚动或关闭打开vim来修复它.但我既不能重现问题,也不能重现修复.

当我使用完全相同版本的vim和完全相同的.vimrc时,这不会发生.因此我怀疑服务器上有问题.特别是我怀疑由于ping时间长(~170 ms)可能会出现问题.

有没有人看到类似的行为?

vim syntax-highlighting

23
推荐指数
2
解决办法
3808
查看次数

实现本地功能

我想要实现的是在函数内创建一个本地函数.同时,本地函数不会覆盖外部函数.下面是一个简单函数和带有参数的嵌套函数的示例,用于说明我的问题.

#!/bin/bash
usage() #<------------------------------- same function name
{
    echo "Overall Usage"
}

function_A()
{
    usage() #<--------------------------- same function name
    {
        echo "function_A Usage"
    }

    for i in "$@"; do
        case $i in
            --help)
                usage
                shift
                ;;
            *)
                echo "flag provided but not defined: ${i%%=*}"
                echo "See '$0 --help'."
                exit 0
            ;;
        esac
    done
}

function_A --help
usage
Run Code Online (Sandbox Code Playgroud)

这是输出.

function_A Usage
function_A Usage
Run Code Online (Sandbox Code Playgroud)

但我想要的是

function_A Usage
Overall Usage
Run Code Online (Sandbox Code Playgroud)

是否可以在不改变其(功能)名称和顺序的情况下实现?请?

注意:我尝试了local usage()但似乎不适用于功能.

bash shell sh

14
推荐指数
2
解决办法
2602
查看次数

如何将stdout,stderr重新路由回/ dev/tty

我只是SSH-ED一些远程服务器,发现stdoutstderr所有命令/进程的我试图在bash运行被重定向到某个地方.所以,我有以下问题

如何检测:

1)哪个文件stdout,stderr是beeing在Linux中重新路由?

2)如何默认重新路由stdoutstderr返回/ dev/tty?

先感谢您.

linux bash stdout tty stderr

12
推荐指数
2
解决办法
3万
查看次数