这个循环将显示我想要做的但是如果我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.11上Ubuntu 14.04.3 LTS
我试图将命令的结果分配给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变量.
我正在运行一个依赖于 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) 我正在编写一个类,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) 当我尝试时,我得到以下回溯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) 我收到以下错误:
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 ×2
bash ×1
c++ ×1
datetime ×1
git ×1
googletest ×1
history ×1
linux ×1
makefile ×1
perl-prove ×1
pip ×1
pyopenssl ×1
python-3.x ×1
test-more ×1
ubuntu ×1