gpt4 book ai didi

TCL:执行 egrep "child process exited abnormally"

转载 作者:行者123 更新时间:2023-12-04 19:16:35 53 4
gpt4 key购买 nike

egrep 命令有问题。
当我在 tcsh 中执行我的命令时,它运行良好,但是当我从 tcl 脚本或 tclsh 中执行它时,我得到:

子进程异常退出

我的 tcl 代码:

exec egrep -i "^(\\\s+)?(tvf::)?LAYOUT\\\s+PATH" test_file

test_file 包含
LAYOUT PATH "file1"
LAYOUT PATH "file2"
//LAYOUT FILE "file 3"
foo string
tvf::LAYOUT PATH "file4"
tvf::LAYOUT PATH "file5"

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

大家好,

我做了一些额外的调查并在 32 位机器上运行这个命令。
该命令适用于 32 位 egrep

结果:
LAYOUT PATH "file1"
LAYOUT PATH "file2"
tvf::LAYOUT PATH "file3"
tvf::LAYOUT PATH "file3"

文件/bin/egrep
*/bin/egrep: 到 `grep' 的符号链接(symbolic link)*

文件/bin/grep
*/bin/grep:ELF 32 位 LSB 可执行文件,Intel 80386,版本 1 (SYSV),适用于 GNU/Linux 2.2.5,动态链接(使用共享库),已剥离*

但是当我删除额外的反斜杠时:
exec egrep -i "^(\s+)?(tvf::)?LAYOUT\s+PATH" test_file

命令返回错误:

子进程异常退出

64位机器上的egrep版本是:

文件/bin/egrep
*/bin/egrep: 到 `grep' 的符号链接(symbolic link)*

文件/bin/grep
*/bin/grep:ELF 64 位 LSB 可执行文件,AMD x86-64,版本 1 (SYSV),适用于 GNU/Linux 2.6.9,动态链接(使用共享库),适用于 GNU/Linux 2.6.9,已剥离*

最佳答案

grep 使用其退出状态来指示匹配的存在/不存在 (man page) - 如果没有匹配,则退出状态为 1。Tcl 的 exec将任何非零退出状态视为异常情况。您需要 catch exec 调用,检查 catch 的返回值,如果非零,检查 $errorCode多变的。这里有一个完整的例子:http://wiki.tcl.tk/exec ,单击“显示讨论”并向下滚动到 KBK 的示例。

关于TCL:执行 egrep "child process exited abnormally",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372155/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com