小编Ste*_*sku的帖子

为什么我不能使用此循环从bash历史记录中删除多个条目

这个循环将显示我想要做的但是如果我echo从中删除它,它实际上不会删除任何东西:

history | grep ":[0-5][0-9] ls *$" | cut -c1-5 | 
while read id; do 
    echo history -d $id
done
Run Code Online (Sandbox Code Playgroud)

我添加了缩进以使其更具可读性但我从命令行运行它作为单行.

我已HISTTIMEFORMAT设置,所以grep找到后跟秒后跟ls任意数量的空格.从本质上讲,它在历史中发现的只是一个ls.

这是使用bash 4.3.11Ubuntu 14.04.3 LTS

linux bash ubuntu history

2
推荐指数
1
解决办法
414
查看次数

将Makefile变量设置为规则中的命令结果

我试图将命令的结果分配给GNU make中的变量.如果我在规则之外执行它,它可以工作:

$ cat stack.mk
GIT_BRANCH=$(shell git rev-parse --abbrev-ref HEAD)

all:
    @echo Git branch is $(GIT_BRANCH)

$ make -f stack.mk all
Git branch is dev
Run Code Online (Sandbox Code Playgroud)

但是如果我把它放在规则体中则不是:

$ cat stack.mk
all:
    export GIT_BRANCH=$(shell git rev-parse --abbrev-ref HEAD)
    @echo Git branch is $(GIT_BRANCH)

$ make -f stack.mk all
export GIT_BRANCH=dev
Git branch is
Run Code Online (Sandbox Code Playgroud)

是否可以在规则中分配变量.此时我想将一些git命令的结果分配给shell/Makefile变量.

git makefile

2
推荐指数
1
解决办法
1990
查看次数

无法为 Python 3 安装 pyOpenSSL

我正在运行一个依赖于 OpenSSL 的 Pyhon3 脚本,它依赖于 OpenSSL。但是,我在安装它时遇到问题。

# pip3 install pyOpenSSL
Downloading/unpacking pyOpenSSL
  Downloading pyOpenSSL-17.4.0-py2.py3-none-any.whl (52kB): 52kB downloaded
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /usr/lib/python3/dist-packages (from pyOpenSSL)
Downloading/unpacking cryptography>=1.9 (from pyOpenSSL)
  Downloading cryptography-2.1.3.tar.gz (441kB): 441kB downloaded
  Running setup.py (path:/tmp/pip-build-ljoosnix/cryptography/setup.py) egg_info for package cryptography
    error in cryptography setup command: Invalid environment marker: python_version < '3'
    Complete output from command python setup.py egg_info:
    error in cryptography setup command: Invalid environment marker: python_version < '3'

----------------------------------------
Cleaning up...
Command python setup.py …
Run Code Online (Sandbox Code Playgroud)

pip pyopenssl python-3.x

2
推荐指数
1
解决办法
6336
查看次数

虚拟方法未调用

我正在编写一个类,BTree用C++实现二叉树,我正在使用Google Test来测试它.我已经visit()为基类创建了一个虚方法,它在每次调用时打印出当前节点的数据.

通过目视检查,我可以看到数字以正确的顺序输出.但是,我希望能够使用Google Test自动测试.为了做到这一点,我创建了一个子类,InOrderTest它覆盖了该visit()方法,以便它附加到字符串而不是打印出来.但是,正在调用基类版本而不是子类.我究竟做错了什么?

这是测试用例:

TEST_F(BTreeTestSuite, inOrder)
{
    class InOrderTest : public BTree
    {
    public:
        InOrderTest(int data) throw(int) : BTree(data), itsVisitString() {};
        std::string visitString(void) const { return itsVisitString; }
        virtual void visit()
        {
            std::ostringstream oss;
            oss << itsData;
            itsVisitString += oss.str();
            std::cerr << "vs1: " << itsVisitString << '|' << std::endl;
            itsVisitString += " ";
            std::cerr << "vs2: " << itsVisitString << '|' << std::endl;
        }
    private:
        std::string itsVisitString;
    };
    InOrderTest iot(20); …
Run Code Online (Sandbox Code Playgroud)

c++ googletest

1
推荐指数
1
解决办法
128
查看次数

无法检测'factorial'的来源.为什么?

当我尝试时,我得到以下回溯prove factorial:

Cannot detect source of 'factorial'! at /usr/share/perl/5.18/TAP/Parser/IteratorFactory.pm line 263.
    TAP::Parser::IteratorFactory::detect_source('TAP::Parser::IteratorFactory=HASH(0x2856b08)', 'TAP::Parser::Source=HASH(0x2856bc8)') called at /usr/share/perl/5.18/TAP/Parser/IteratorFactory.pm line 213
    TAP::Parser::IteratorFactory::make_iterator('TAP::Parser::IteratorFactory=HASH(0x2856b08)', 'TAP::Parser::Source=HASH(0x2856bc8)') called at /usr/share/perl/5.18/TAP/Parser.pm line 469
    TAP::Parser::_initialize('TAP::Parser=HASH(0x28569e8)', 'HASH(0x23d8cb8)') called at /usr/share/perl/5.18/TAP/Object.pm line 58
    TAP::Object::new('TAP::Parser', 'HASH(0x23d8cb8)') called at /usr/share/perl/5.18/TAP/Object.pm line 133
    TAP::Object::_construct('TAP::Harness=HASH(0x2131db8)', 'TAP::Parser', 'HASH(0x23d8cb8)') called at /usr/share/perl/5.18/TAP/Harness.pm line 779
    TAP::Harness::make_parser('TAP::Harness=HASH(0x2131db8)', 'TAP::Parser::Scheduler::Job=HASH(0x28235d0)') called at /usr/share/perl/5.18/TAP/Harness.pm line 578
    TAP::Harness::_aggregate_single('TAP::Harness=HASH(0x2131db8)', 'TAP::Parser::Aggregator=HASH(0x2740ae0)', 'TAP::Parser::Scheduler=HASH(0x2823570)') called at /usr/share/perl/5.18/TAP/Harness.pm line 670
    TAP::Harness::aggregate_tests('TAP::Harness=HASH(0x2131db8)', 'TAP::Parser::Aggregator=HASH(0x2740ae0)', 'factorial') called at /usr/share/perl/5.18/TAP/Harness.pm line 485
    TAP::Harness::__ANON__() called at /usr/share/perl/5.18/TAP/Harness.pm line 498
    TAP::Harness::runtests('TAP::Harness=HASH(0x2131db8)', 'factorial') …
Run Code Online (Sandbox Code Playgroud)

perl perl-prove test-more

1
推荐指数
1
解决办法
753
查看次数

无法通过包"Datetime"找到对象方法"now"

我收到以下错误:

Can't locate object method "now" via package "Datetime" (perhaps you forgot to load "Datetime"?) at ../scripts/dateTimeTest.pl line 4.
Run Code Online (Sandbox Code Playgroud)

对于这个脚本:

#!/usr/bin/perl -w

require DateTime;
my $dt = Datetime->now;
Run Code Online (Sandbox Code Playgroud)

但是,以下命令行程序有效:

perl -e 'require DateTime; my $dt = DateTime->now'
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

perl datetime

0
推荐指数
1
解决办法
1130
查看次数