小编Cha*_*Kim的帖子

通过管道和 tee 命令运行时未显示 python 打印语句

我有时使用简单的函数 w1(str) 来使程序停止并等待按键。下面的代码有效。

文件:测试.py

#!/bin/env python

def w1(str):
    print (str)
    wait = raw_input()
    return

if __name__ == '__main__':
    print('started..')
    w1('press a key')
    print('exiting..')
Run Code Online (Sandbox Code Playgroud)

它如何运行(好的):

ckim@stph45:~/test] test.py
started..
press a key

exiting..
Run Code Online (Sandbox Code Playgroud)

但是当我运行时test.py | tee log,它不会显示任何内容,如果我按下一个键,它就会完成不打印消息并等待按键。实际上,问题是print(str)当通过 tee 命令运行时,屏幕上没有显示 ,它正在等待我的密钥。print(str)即使我用 运行它,如何才能显示它|tee

编辑:好吧,我知道这python -u可以解决问题。但最初我的 python 脚本#!/bin/env python在脚本的开头,所以我运行它test.py | tee log。我搜索了网络,发现我可以这样做:

ckim@stph45:~/test] setenv PYTHONUNBUFFERD 1
ckim@stph45:~/test] $test.py | tee log
Run Code Online (Sandbox Code Playgroud)

python tee

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

如何在 Microsoft Excel 中的公式后附加多行文本?

我可以使用“=”运算符使自动计算的值出现在单元格中。例如,当单元格F20为 时200,我可以在单元格中输入G20

=F20/10
Run Code Online (Sandbox Code Playgroud)

然后,我20在 cell 中看到G20

现在我想在单元格中添加一个注释,G20以便它出现

20
note 4)
Run Code Online (Sandbox Code Playgroud)

我知道我能做到

=concatenate(F20/10,"   note 4)")
Run Code Online (Sandbox Code Playgroud)

但这显然表明

20   note4)
Run Code Online (Sandbox Code Playgroud)

这不是我想要的。在这种情况下,如何在附加文本中
放置enter(新行)?

excel ms-office excel-formula

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

在 bash 脚本中,右侧的 =~ 和 " " 有什么用?

这是显示行号的 bash 脚本的一部分。我可以理解 getopts 在 bash 中的工作原理,但无法理解第 116 行。if [[ ! " ${FS_OPTIONS[@]} " =~ " $OPTARG " ]]; then部分。在脚本的早些时候有

#!/usr/bin/env bash
FS_OPTIONS=("ubuntu" "busybox")
while getopts "hsf:" opt; do
    case $opt in
        f)
            if [[ ! " ${FS_OPTIONS[@]} " =~ " $OPTARG "  ]]; then
                echo "Unsupported filesystem $OPTARG"
                echo "Use ubuntu/busybox"
                exit -1
            else
                echo "ok!"
                export FILESYSTEM=$OPTARG
            fi
            ;;
    esac
done

ckim@chan-ubuntu:~/testbash$ test3.sh -f ubuntu
ok!
ckim@chan-ubuntu:~/testbash$ test3.sh -f busybox
ok!
ckim@chan-ubuntu:~/testbash$ test3.sh -f ubunt.
Unsupported …
Run Code Online (Sandbox Code Playgroud)

bash

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

OpenCV编译错误链接CXX共享库../../lib/libopencv_highgui.so /lib/libbz2.so.1:无法读取符号:文件格式错误

我正在尝试在我的CentOS 6.4上安装OpenCV-2.4.9.机.
我在〜/ Downloads/opencv-2.4.9中下载了源代码.
从那里,我做了'mkdir build; cd build'.然后呢

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON --enable-shared ..

并且'做'-j2'.
下面是我收到的消息(这是使用'make'重新运行的结果)

[  3%] Built target libtiff
[  4%] Built target opencv_core_pch_dephelp
[  4%] Built target pch_Generate_opencv_core
[  6%] Built target opencv_core
[  6%] Built target opencv_ts_pch_dephelp
[  6%] Built target pch_Generate_opencv_ts
[  6%] Built target opencv_imgproc_pch_dephelp
[  7%] Built target pch_Generate_opencv_imgproc
[ 11%] Built target opencv_imgproc
[ 11%] Built target …
Run Code Online (Sandbox Code Playgroud)

opencv cmake

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

可以将无符号的int位值复制为float,但float值不会正确返回给调用者函数

在下面的代码中,我有bits正确的(它最初是bits<float>在C++程序中输入的,但我只是uint32在这个C程序中使用过.).我想将这些位用作ieee754 float值.分配只是float_var = int_val不会这样做,因为它解释了值并转换为float.我想只使用位值作为浮点值.

    uint32 bits = mantissa_table[offset_table[value>>10]+(value&0x3FF)] + exponent_table[value>>10];
    ab_printf("bits = %x\n", bits);
    float out;
    //memcpy(&out, &bits, sizeof(float));  // original
    char *outp = &out;
    char *bitsp  = &bits;
   outp[0] = bitsp[0];
   outp[1] = bitsp[1];
   outp[2] = bitsp[2];
   outp[3] = bitsp[3];
    ab_printf("out = %x\n", out);
    return out;
Run Code Online (Sandbox Code Playgroud)

程序运行结果的一部分:

ff = 3.140000
hh = 4248
bits = 40490000
out = 40092000
Run Code Online (Sandbox Code Playgroud)

必须有一些我不知道的基本知识.为了您的信息,上面的运行是将浮动3.14转为半精度并返回单精度,我打印中间值.0x4248是半精度3.140625,位0x40490000也是单精度 …

c arrays types

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

为什么在许多 arm64 程序中的程序结束之前有 ab(分支)指令?

这是来自 linux 源代码 arch/arm64/kernel/head.S 显示内核启动。代码首先调用preserve_boot_args和下一个调用el2_setup使用bl(分支和链接)。我也展示了程序preserve_boot_args

SYM_CODE_START(primary_entry)
        bl      preserve_boot_args
        bl      el2_setup                       // Drop to EL1, w0=cpu_boot_mode
        adrp    x23, __PHYS_OFFSET
        and     x23, x23, MIN_KIMG_ALIGN - 1    // KASLR offset, defaults to 0
        bl      set_cpu_boot_mode_flag
        bl      __create_page_tables
        /*
         * The following calls CPU setup code, see arch/arm64/mm/proc.S for
         * details.
         * On return, the CPU will be ready for the MMU to be turned on and
         * the TCR will have been set.
         */
        bl …
Run Code Online (Sandbox Code Playgroud)

assembly arm abi eabi arm64

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

编译c代码时如何让g++忽略calloc指针类型错误

例如,下面的行可以用 gcc 编译,

float *m = calloc(rows*cols, sizeof(float));
Run Code Online (Sandbox Code Playgroud)

但是 g++ 抱怨指针类型不匹配,如下所示。

../../../../../YOLO/darknet/src/gemm.c:33:22:错误:从“void*”到“float*”的无效转换

(也许 callc 在 C++ 中总是返回 void* ?)
我可以让 g++ 忽略这个指针类型不匹配错误吗?(我找到了这个链接,但他们说这是不可避免的。如果我们可以在 C++ 代码中使用 C 代码而无需在任何地方修复它,那就太好了。)

c c++ pointers compiler-errors g++

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

如果我从源代码构建linux内核,默认情况下它内部是否包含initramfs?

我想在构建内核之前,我必须使用 busybox 来填充 init 文件系统,并使用 cpio 来制作 initramfs 映像并将其添加到 Linux 内核源代码树中(例如在 arch/arm64/boot 中?)。但是如果我跳过这个过程并只构建内核,它是否包含一种默认的 initramfs ?或者它有空的 initramfs 吗?(网上的很多例子都没有显示busybox程序..)

build linux-kernel

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

标签 统计

c ×2

abi ×1

arm ×1

arm64 ×1

arrays ×1

assembly ×1

bash ×1

build ×1

c++ ×1

cmake ×1

compiler-errors ×1

eabi ×1

excel ×1

excel-formula ×1

g++ ×1

linux-kernel ×1

ms-office ×1

opencv ×1

pointers ×1

python ×1

tee ×1

types ×1