我一直在编写一些shell脚本,如果能够在任何命令失败的情况下暂停执行所述shell脚本,我会发现它很有用.请参阅下面的示例:
#!/bin/bash
cd some_dir
./configure --some-flags
make
make install
Run Code Online (Sandbox Code Playgroud)
因此,在这种情况下,如果脚本无法更改为指示的目录,那么如果失败,它肯定不会在之后执行./configure.
现在我很清楚我可以对每个命令进行if检查(我认为这是一个无望的解决方案),但是如果其中一个命令失败,是否有全局设置使脚本退出?
基本上我想知道为什么这不输出任何东西:
tail --follow=name file.txt | grep something | grep something_else
Run Code Online (Sandbox Code Playgroud)
你可以假设它应该产生输出我已经运行了另一行来确认
cat file.txt | grep something | grep something_else
Run Code Online (Sandbox Code Playgroud)
好像你不能多次输出尾巴的输出!?任何人都知道这笔交易是什么,有没有解决方案?
编辑:要回答到目前为止的问题,该文件肯定有grep应显示的内容.作为证据,如果grep是这样做的:
tail --follow=name file.txt | grep something
Run Code Online (Sandbox Code Playgroud)
输出显示正确,但如果使用它:
tail --follow=name file.txt | grep something | grep something
Run Code Online (Sandbox Code Playgroud)
没有显示输出.
如果有帮助我运行ubuntu 10.04
我试图使用CMake在C++项目和它使用的库之间建立一些简单的依赖关系.
设置如下
项目本身包含源文件,其中包含来自Dependency和可执行文件构建时的头文件,它需要与Dependency静态库链接.
到目前为止,我能得到这个工作,但我必须指定包括目录Dependency中CMakeLists.txt的文件Project手动.我希望自动将其拉出来,并且我已经探索了使用find_package()命令这样做的选项,只取得了有限的成功并使事情变得更加复杂.
我想要做的就是Dependency之前已经构建Project并具有Project与库的链接并具有其包含目录.有一个简单的方法来实现这一目标吗?
我目前的CMake文件:
Project,档案CMakeLists.txt:
cmake_minimum_required (VERSION 2.6)
project (Project)
include_directories ("${PROJECT_SOURCE_DIR}/Project")
add_subdirectory (Dependency)
add_executable (Project main.cpp)
target_link_libraries (Project Dependency)
add_dependencies(Project Dependency)
Run Code Online (Sandbox Code Playgroud)
Dependency,档案CMakeLists.txt:
project(Dependency)
add_library(Dependency SomethingToCompile.cpp)
target_link_libraries(Dependency)
Run Code Online (Sandbox Code Playgroud) 我正在尝试在TypeScript项目(3.0.1)中使用victor.js库,并且在尝试导入和使用它时确实心痛。我已经从npm以及它的类型(victor @ types / victor)安装了它。我尝试了多种导入方式,但似乎无法使其与IDE中的类型解析一起导入。
我已经尝试过这些:
import { Victor} from 'victor';
import * as v from 'victor';
Run Code Online (Sandbox Code Playgroud)
(只有通过打开“ allowSyntheticDefaultImports”标志并引用其默认导出,才能使用ECMAScript导入/导出引用此模块)
import Victor = require('victor');
Run Code Online (Sandbox Code Playgroud)
(在定位ecmascript模块时有效,但不兼容)
const Victor = require("victor");
Run Code Online (Sandbox Code Playgroud)
(有效导入,我可以构造对象,但不存在任何类型)
我敢肯定,外面有人遇到过类似的情况。如果有帮助,则victor的index.js顶部具有以下行:
exports = module.exports = Victor;
Run Code Online (Sandbox Code Playgroud) 我想知道是否有办法获取当前正在执行的lua脚本文件的路径?
这特别不是当前的工作目录,可能完全不同.我知道luafilesystem会让我获取当前的工作目录,但它似乎无法告诉当前正在执行的脚本文件.
谢谢
编辑:我没有从标准命令行解释器运行,我正在通过luabind从C++二进制文件执行脚本.
嗨我正在尝试使用cmake文件中的正则表达式将一串小写字母转换为大写.
我正在使用的命令是:
string(REGEX REPLACE 匹配替换输出输入)
有谁知道如何指定使用cmake的正则表达式工具将每个小写字母替换为大写字母?
TLDR;(更新)
<input>在不使用type=number属性设置的情况下发出信号提示类型为数字的信号。
<input>,type=number有一种方法可以吞下所有不会产生有效数字的键输入
keyup 请阅读以下原始详细说明
我的问题如下;
我有一个html <input>元素,我只想接受数字并在移动设备上被识别为数字字段。我也希望吞下无效字符,就像标准type=number吞咽不允许的字符一样。
我尝试了明显的方法,type=number但是它有很多缺点。具体来说,它允许使用“ e”,“ +”和“-”(至少在chrome中),但是使用JS可以轻松解决这些问题。真正的问题在于“。” 字符,我希望能够输入浮点数,例如“ 0.10”,“ 5.5054”,但又不想输入无效的字符串,例如“ 0.10.1”。我试图通过仅允许1'来解决此问题。一次,但是input.value由于浏览器提示“ 5” 而失败。变为'5','5 ..'变为null(!),并且似乎无法获得在输入中键入的原始字符串值。以上意味着检查现有的'。'并采取行动似乎是死路一条...
核心问题:
type=number?注意:
*我意识到您可以粘贴您想要的任何内容,我认为行为是病理性的,因此不应被输入预防所涵盖。
更新:
为了澄清,我已经尝试过keypress,keydown等事件和他们没有足够的,因为我想看看有多少”的输入目前存在选择是否要允许其他。在这一点上input.value,浏览器已经按摩了,以删除“。”。我想有条件地允许基于当前输入的'。'字符。
示例:
HTML(为简洁起见,使用角度样式绑定)
<input type="number" (keydown)="keyDown()">
Run Code Online (Sandbox Code Playgroud)
JS
function keyDown($event: KeyboardEvent) {
const inputField = // obtain reference to input element
const value = inputField.value;
if ( value.indexOf('.') !== -1 && $event.key …Run Code Online (Sandbox Code Playgroud) 有没有人知道如何让SVN在通过ssh连接进行操作时记录ssh连接的详细信息?
当我无法连接svn总是给我:
To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
Run Code Online (Sandbox Code Playgroud)
我查看了配置的[tunnels]部分,目前没有启用任何内容.看起来您可以指定如何调用ssh,我尝试通过此方法为ssh指定-v,但它似乎没有效果.当SVN尝试连接时,我真正想要的是ssh的-v输出.虽然任何额外的日志记录都会很好.
如何通过SVN获取详细的ssh日志记录?
我在linux上的命令行使用SVN.
编辑:
澄清我想要的结果,因为我还没有沟通得好:
为了能够使用std::allocate_shared与boost::fast_pool_allocator作为使用G ++ 4.8或更高升压1.56.0的分配方法.目前这适用于g ++ 4.6,并且在4.7,4.8和4.9上失败.
要清楚,我不打算为g ++ 4.7做这项工作.
测试代码产生错误:
#include "boost/pool/pool.hpp"
#include "boost/pool/pool_alloc.hpp"
#include <memory>
int main(int argc, char** argv)
{
auto fails = std::allocate_shared<int>( boost::fast_pool_allocator<int>() );
auto works = std::allocate_shared<int>(boost::fast_pool_allocator<int>(), 5);
}
Run Code Online (Sandbox Code Playgroud)
在我们的代码库中,我们将std :: allocate_shared与boost池分配器结合使用,这会导致一些讨厌的编译错误.然而,这已经在不同版本的g ++中变形和变化:
细节:64位,(4.7,4.8)-std = c ++ 11,(4.6)-std = c ++ 0x,boost 1.56.0
4.6 - 编译愉快
4.7 -崩溃编译器
内部编译器错误:重新输入错误报告例程.如果合适,请提交完整的错误报告,并提供预处理的来源.请参阅说明.存储在/tmp/cca0Emq9.out文件中的预处理源,请将其附加到您的bug报告中.
4.8 - 令人讨厌的编译错误
Run Code Online (Sandbox Code Playgroud)/XXXXXXXXXX/boost/boost/pool/pool_alloc.hpp:399:错误:使用删除功能 '的std :: _ Sp_counted_ptr_inplace,(__gnu_cxx :: _ Lock_policy)2U> :: _ Sp_counted_ptr_inplace(常量性病:: _ Sp_counted_ptr_inplace,(__gnu_cxx :: _ Lock_policy)2U>&)' 的{新(PTR)T(t)的; …
我正在使用Boost.Python在我的C++可执行文件中嵌入一个解释器并执行一些预先编写的脚本.我有它的工作,所以我可以调用python文件中的函数,但我想使用的python代码导入外部文件,这些导入失败,因为'没有名为'的模块.如果我直接从python运行脚本,一切都按预期工作.
所以我的问题是在通过C++绑定运行的python脚本中导入模块的正确方法是什么?
C++代码:
#include "boost/python.hpp"
int main(int argc, char** argv)
{
try
{
Py_Initialize();
boost::python::object test = boost::python::import("__main__");
boost::python::object testDict = test.attr("__dict__");
boost::python::exec_file("test.py", testDict, testDict);
}
catch(boost::python::error_already_set& e)
{
PyErr_Print();
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Python代码:
import ModuleX
Run Code Online (Sandbox Code Playgroud)